Por que as exceções AppDomain terminam invariavelmente o aplicativo?

Isso está relacionado a umpergunta anterior.

O que estou tentando entender agora é como as exceções de thread de interface do usuário podem ser impedidas de encerrar o aplicativo, enquanto as exceções não da interface do usuário não podem ser.

Para referência, consulteeste exemplo.

Mais importante, o que eu gostaria de poder fazer nesse caso é "silenciosamente" terminar o processo - sem exibir a caixa de diálogo do Windows que pergunta se eu gostaria de enviar um relatório de erro ou não.

Este é o meu 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();            
}

ATUALIZAR
À luz dos comentários emesta resposta, Gostaria de esclarecer que, o mais importante, gostaria de saber mais sobre o mecanismo que permite que o thread da interface do usuário tenha uma oportunidade antecipada de capturar exceções não tratadas por meio doApplication.ThreadException mecanismo. E se tal comportamento poderia ser implementado em um thread não-UI.