Почему заголовок Location не перенаправляет страницу сразу?
Только потому, что он вообще ничего не перенаправляет. Это браузер, который будет тормозить текущее соединение (вызывая остановку скрипта), чтобы запросить другую страницу. И есть задержка в сети.
Он всегда выполняет весь процесс перед перенаправлением?
Не всегда. Это просто не гарантировано.
Мне действительно нужно, чтобы процесс продолжал прикреплять местоположение заголовка, чтобы завершить работу системы и генерировать журналы
с mod_php вам понадобится ignore_user_abort()
, а с php-fpm fastcgi_finish_request()
, чтобы гарантировать полное выполнение скрипта.