PHP скрипт с огромным временем выполнения — как правильно такое писать?
Я оформлял такие скрипты в виде консольной команды на PHP.
И работало все по такому принципу:
1) Запускаем команду, она пишет в базу (в специальную табличку) что она запущена
2) На фронтенде запускается ajax который время от времени проверяет табличку с состоянием команды по ее идентификатору.
3) Команда завершилась ошибкой и записала в табличку свое состояние «error» например и сообщение ошибки, ajax запрос увидел это и сообщил уже веб интерфейсу.
4) Команда завершилась успехом — аналогично пункту (3)
Вот ещё хоть и извращенческо-костыльный, но в некоторых случаях почти незаменимый вариант (требуются базовые знания PHP и HTML/JavaScript):

1. Пишется скрипт, парсящий XML и составляющий в виде HTML табличку с урлами картинок.
2. Пишется скрипт, которому передаётся два параметра: значение строки в табличке из п. 1 и номер (индекс) строки в этой табличке. Задача скрипта: в PHP-части залить картинку и записать что надо в базу, а в onload на body (javascript) прописать редирект на себя же, но со значением (получается из javascript) и индексом следующей строки таблички. Если индекс равен количеству строк, выдать alert, что заливка закончилась.
3. Пишется простенькая html-страничка из двух фреймов: в первом фрейме скрипт из п. 1, во втором — скрипт из п. 2 со стартовыми значениями. Эта страничка открывается в браузере, после чего можно пойти поспать. Комп желательно держать на надёжном канале в инет и бесперебойнике, чтобы связь не прервалась.