Hola,
La cosa sería más o menos como sigue. Como tú dices rediriges al usuario a un script que se encarga de generar cierto reporte en PDF. Yo creo que podrías aprovechar dicho script e imprimir (HTML) cierta imagen, como pudiera ser la que adjunto (pero es sólo un ejemplo).
Justo a continuación de imprimir, dar salida a la imagen en cuestión, el script se pone a generar el reporte PDF. Y, cuando termine esta tarea, el mismo script podría "ocultar" la imagen que indica el progreso de la tarea, o redirigir al usuario a cualquier otro sitio.
Iba a adjuntarte un archivo, pero, veo que he excedido mi cuota. Así que
aquí mismo puedes ver un ejemplo de lo que hablo. Y puedes
descargar los archivos implicados desde aquí. Fíjate que los archivos están en un servidor Linux, de manera que la función "flush()" se comporta como se espera. Según el manual de PHP, la función "flush()" no se comporta igual en Windows. Tendrás que mirar, porque hay que hacer alguna que otra cosa además.
Fíjate que al entrar en el ejemplo se te mostrará una imagen que indica el progreso de una supuesta tarea. A los cinco segundos (que tarda en llevarse a cabo la tarea simulada) podrás ver un mensaje "Reporte generado", que indicará que la tarea se llevó a cabo. En ese momento podrías redirigir al usuario a otro lugar, ocultar la imagen que indica el progreso, en fin, eso ya depende.