Opa meu amigo, muito criativa sua solução. Tenho um caso parecido em meu sistema, mas com planilhas exel e arquivos json, eu estava pensando em utilizar Workers no front-end para não travar a tela do usuáro e fazer o download via stream. Acho que é possível juntar isso com sua solução para ficar ainda mais eficiente ainda.
Uma dúvida que tive ao ler o seu post é, como que o back-end iria notificar o front-end?
"...vai gerar o relatório e quando terminar vai notificar o usuário que o solicitou."