Desde luego que hacer esperar 1 minuto al usuario mientras se genera su página (que en realidad genera y descarga un Excel) es un poco excesivo. Supongo que ya has optimizado al máximo la generación del informe así que este punto nos lo saltamos.
Además de la idea que tienes de hacer un proceso en segundo plano que envíe el informe por email que me parece muy válida, te voy a dar otra idea por si te gusta más: cola de generación y descarga de informes.
El usuario añadiría una "petición" de generación de informe Excel a la cola. En este punto podrías controlar el número máximo de informes en espera, que no se puedan solicitar informes duplicados o cualquier otra circunstancia que se te ocurra.
Un proceso en segundo plano en el servidor se encargaría de ir generando todos los informes solicitados por los diferentes usuarios y de actualizar el estado de las peticiones de la cola.
El usuario tendría una sección en la página para ver su cola de peticiones y el estado de las mismas (generándose, en espera, listo para descargar...). Este listado incluso te podrías plantear actualizarlo mediante JS para que la información fuese en "tiempo real".
Adicionalmente podrías ir vaciando la lista de tareas completadas antiguas y eliminando del servidor los ficheros antiguos que ya no sirvieran.