¿Por qué las excepciones de AppDomain terminan invariablemente la aplicación?

Esto está relacionado con unPregunta anterior.

Lo que estoy tratando de entender ahora es por qué se puede evitar que las excepciones de subprocesos de la interfaz de usuario terminen la aplicación mientras que las excepciones no relacionadas con la interfaz de usuario no pueden ser.

Para referencia, vereste ejemplo.

Lo más importante, lo que me gustaría poder hacer en ese caso es terminar el proceso "en silencio", sin mostrar el cuadro de diálogo de Windows que pregunta si me gustaría enviar un informe de errores o no.

Esta es mi AppDomain UnhandledExceptionHandler:

private static void CurrentDomain_UnhandledException(object sender, UnhandledExceptionEventArgs e)
{            
    try
    {
        // Maybe do some logging here if allowed
    }
    catch
    {
    }

    // then just terminate the application
    Application.Exit();            
}

ACTUALIZAR
A la luz de los comentarios enesta respuesta, Me gustaría aclarar que lo más importante es que me gustaría saber más sobre el mecanismo que permite que el subproceso de la interfaz de usuario tenga una oportunidad temprana para detectar excepciones no controladas a través deApplication.ThreadException mecanismo. Y si tal comportamiento podría implementarse en un subproceso que no es de IU.

Respuestas a la pregunta(3)

Su respuesta a la pregunta