Надежнее и быстрее кроном, т.е. первым способом. Плюс добавить монопольный режим, который будет позволять запускать только один экземпляр.
Во втором варианте есть один недостаток - нужно навесить менеджер процессов, который будет контроллировать жизнь процесса и поднимать его, если он упал. Плюс необходимо быть уверенным, что скрипт не течет по памяти, а этого достичь не всегда удается (особенно, если достался в наследство "хороший" код).