Código de longa duração dentro do processo asp.net

Por exemplo. nós este código no código asp.net codebihind:

private void btnSendEmails_OnClick()
{
    Send100000EmailsAndWaitForReplies();
}

Esta execução de código será eliminada pelo motivo do tempo limite. Para resolver o problema, gostaria de ver algo assim:

private void btnSendEmails_OnClick()
{
    var taskId = AsyncTask.Run( () =>  Send100000EmailsAndWaitForReplies() );
    // Store taskId for future task execution status checking.
}

E esse método será executado de alguma forma fora do processo w3wp.exe em um enveronment especial.

Alguém conhece um framework / conjunto de ferramentas para resolver esse tipo de problema?

Atualizar: O método de envio de emails é apenas um exemplo do que quero dizer. Na verdade, eu poderia ter muita funcionalidade precisa ser executada fora do processo de trabalho do asp.net.

Por exemplo. Esse ponto é muito importante para um aplicativo que agrega dados de alguns serviços de terceiros, faça algo com eles e os envie de volta para outro serviço.

questionAnswers(9)

yourAnswerToTheQuestion