set_time_limit не работает, скрипт отрабатывает бесконечно долго
Отделите мух от котлет.
Сделайте тест, в котором будет только сет_тайм_лимит и бесконечный цикл, т.е. в две строки.
Так вы локализуете проблему — это с вашим окружением или с кодом.
set_time_limit может не работать потому что:
 You can not change this setting with ini_set() when running in safe mode. The only workaround is to turn off safe mode or by changing the time limit in the php.ini.
Your web server can have other timeout configurations that may also interrupt PHP execution. Apache has a Timeout directive and IIS has a CGI timeout function. Both default to 300 seconds. See your web server documentation for specific details. 

Т.е. запуск из командной строки и http запросом в браузере могут по окружению и настройкам именно time_limit а отличаться