Cómo capturar / observar una excepción no manejada lanzada desde una tarea

Estoy intentando registrar / reportar todas las excepciones no manejadas en mi aplicación (solución de informe de errores). Me he encontrado con un escenario que siempre está sin manejar. Me pregunto cómo podría detectar este error de manera no controlada. Tenga en cuenta que he investigado un montón esta mañana y he probado muchas cosas ... Sí, he vistoesta, esta y muchos más. Solo estoy buscando una solución genérica para registrar excepciones no manejadas.

Tengo el siguiente código dentro de un método principal de las aplicaciones de prueba de consola:

Task.Factory.StartNew(TryExecute);

o

Task.Run((Action)TryExecute);

así como el siguiente método:

private static void TryExecute() {
   throw new Exception("I'm never caught");
}

Ya he intentado conectar lo siguiente en mi aplicación, pero nunca se llaman.

AppDomain.CurrentDomain.UnhandledException
TaskScheduler.UnobservedTaskException

En mi aplicación Wpf, donde inicialmente encontré este error, también conecté estos eventos, pero nunca fue llamado.

Dispatcher.UnhandledException
Application.Current.DispatcherUnhandledException
System.Windows.Forms.Application.ThreadException

El único manejador que se llama alguna vez es:

AppDomain.CurrentDomain.FirstChanceException

pero esta no es una solución válida, ya que solo deseo informar excepciones no detectadas (no todas las excepciones, ya que se llama a FirstChanceException antes de que se ejecute / resuelva cualquier bloque catch).

Respuestas a la pregunta(2)

Su respuesta a la pregunta