Processo em segundo plano de execução demorada no ASP.NET - Application_Start ou processo separado?

Estou desenvolvendo um aplicativo .NET 4 que requer a execução de um thread de trabalho de back-end. Este segmento consiste principalmente no seguinte código:

while (true) {
    //Check stuff in database
    //Do stuff
    //write to database / filesystem
    Thread.sleep(60000)
}

aplicativo ASP.NET é apenas uma interface para o banco de dado

Minha pergunta é em torno de onde seria o melhor lugar para colocar esse loop de trabalho. Parece que minhas duas escolhas imediatas seriam (1) separá-lo doApplication_Start e deixe-o executar ou (2) agrupe-o em um processo separado (serviço do Windows?)

(1) obviamente precisaria de alguma lógica no código do ASP.NET para verificar se ainda está em execução, pois o IIS pode matá-lo. Também é bastante claro que toda a lógica do aplicativo está em um pacote facilmente implementável. (2) é muito mais segregado, mas parece muito mais confus

Qual é a melhor abordagem?

questionAnswers(2)

yourAnswerToTheQuestion