Supervisión de subprocesos de C #: qué hace qué / cuándo

Como todos, estoy acostumbrado a depurar mi código en VS en modo paso a paso. Bueno, ahora que tengo una aplicación con muchos trabajadores de fondo en todas partes, ya no estoy en Kansas.

¿Cuál es la forma más eficiente de depurar aplicaciones con subprocesos y poder monitorear cada subproceso para realizar un seguimiento de lo que sucede en todo el código?

A partir de ahora, me mantengo en una buena depuración usando instancias de registrador separadas para cada subproceso, pero esto se está convirtiendo lentamente en una pesadilla y pronto me ahogaré en mis propios registros.