Después de una redirección con header, al modificar simplemente las cabeceras de lo que enviamos al navegador, el código php sigue ejecutandose hasta el final.
Probad de borrar un archivo de prueba despues de hacer un header y veréis que efectivamente borra el archivo.
Que yo sepa no, diría que será por algún bucle infinito que has hecho mal.
La página se queda cargando?
Si es así, lo más seguro es que sea eso. Sino, es que tu código es correcto pero no hace lo que tu quieres. Entonces te toca buscarte la vida poniendo echos en los puntos conflictivos para poder comprobar que sea lo que tu quieres.