django, fastcgi: como gerenciar um processo de longa execução?

Eu herdei um aplicativo django + fastcgi que precisa ser modificado para executar um cálculo demorado (até meia hora ou mais). O que eu quero fazer é executar a computação em segundo plano e retornar uma resposta do tipo "seu trabalho foi iniciado". Enquanto o processo está em execução, novas ocorrências no URL devem retornar "seu trabalho ainda está em execução" até que o trabalho termine e nesse ponto os resultados do trabalho deverão ser retornados. Qualquer ocorrência subsequente no URL deve retornar o resultado em cache.

Sou novato no django e não faço nenhum trabalho significativo na web há uma década, então não sei se há uma maneira integrada de fazer o que quero. Eu tentei iniciar o processo via subprocess.Popen (), e isso funciona bem, exceto pelo fato de deixar uma entrada desativada na tabela de processos. Preciso de uma solução limpa que possa remover arquivos temporários e quaisquer vestígios do processo após a conclusão.

Eu também experimentei fork () e threads e ainda tenho que encontrar uma solução viável. Existe uma solução canônica para o que me parece ser um caso de uso bastante comum? FWIW, isso será usado apenas em um servidor interno com tráfego muito baixo.