¿Puedes llegar a un punto muerto al llamar a GC.Collect y GC.WaitForPendingFinalizers?

Dado lo siguiente:

GC.Collect(GC.MaxGeneration);
GC.WaitForPendingFinalizers();
GC.Collect(GC.MaxGeneration);

Teniendo en cuenta los modos de subprocesamiento múltiple y recolección de basura, ¿en qué circunstancias obtendría un punto muerto?WaitForPendingFinalizers?

Nota: no estoy buscando respuestas sobre los motivos por los que no deberías llamarGC.Collect.