Множество идей:
1) Не делайте этого внутри HTTP-запроса. Напишите php-скрипт командной строки, чтобы управлять им. При необходимости вы можете использовать веб-скрипт, чтобы запустить его.
2) Вы должны иметь возможность установить max_execution_time на ноль (или вызвать set_time_limit (0)), чтобы гарантировать, что вас не отключат за превышение лимита времени
3) Звучит так, будто вы действительно хотите преобразовать это в нечто более разумное. Подумайте о том, чтобы настроить небольшую систему организации очередей на работу и иметь скрипт php, который заставит нескольких детей пережить всю работу.
Как говорит Джош, посмотрите на ваш error_log и выясните, почему вас закрывают прямо сейчас. Попытайтесь выяснить, сколько памяти вы используете - это может быть проблемой. Попробуйте установить max_execution_time на ноль. Может быть, это приведет вас туда, где вам нужно быть быстро.
Но в долгосрочной перспективе кажется, что у вас слишком много работы внутри одного http-запроса. Возьми это из http, и разделяй и властвуй!