Como tratar exceções de segmentos não tratados no ASP.NET?

Como um aplicativo ASP.NET deve lidar com exceções não tratadas que estão ocorrendo em um thread de segundo plano sem solicitação (devido a bugs)?

Por padrão, essas exceções fazem com que o processo seja finalizado.Isso é inaceitável na configuração de um processo de trabalho do ASP.NET porque solicitações simultâneas em execução são anuladas imprevisivelmente. Também é um problema de desempenho.

Exceções em um thread de solicitação não são um problema porque o ASP.NET as manipula (mostrando uma página de erro).

oAppDomain.UnhandledException event permite observar que ocorreu uma exceção, mas a terminação não pode ser impedida nesse ponto.

Aqui está uma reprodução que precisa ser colada em um codebehind página ASPX.

protected void Page_Load(object sender, EventArgs e)
{
    var thread = new Thread(() =>
        {
            throw new InvalidOperationException("some failure on a helper thread");
        });
    thread.Start();
    thread.Join();
}

A única solução que conheço é nunca deixar uma exceção "escapar" sem tratamento. Existe alguma outra solução global e completa para isso?

questionAnswers(3)

yourAnswerToTheQuestion