Если вы запускаете скрипт через cron, то он выполняется в cli режиме. А в cli режиме у php нет лимитов на время выполнения скрипта.
Если же ваш скрипт при запуске из крона падает, то, скорее всего, он превышается какие-то другие лимиты (скорее всего, потребляет больше памяти, чем разрешено).
Если проблема с памятью, то можно увеличить лимиты, как советует
@merryjane, или же поискать и оптимизировать места, где у вас идут утечки памяти.
UPD: но вы, всё же, можете сделать поэтапное выполнение скрипта: сгенерировать дополнительным скриптом подзадачи, положить эти задачи в какую-нибудь БД, а потом запускать ваш основной скрипт несколько раз, а он уже будет брать задачи из такой вот кустарной очереди. Ну или можно использовать какие-нибудь готовые менеджеры очередей :)