Je crois qu'il faudrait faire du CRON couplé avec des sleep.
Il me semble qu'en CRON on peut executer un script jusqu'à toutes les minutes.
Donc après un sleep de 30 sec c'est jouable.
Hélas pour faire du CRON si poussé il faut un serveur dédié en général et avec un serveur dédié il suffit de faire un set_time_limit(xxx) sur le script en question.
J'ai été confronté à ce problème, j'ai pas trouvé de solution pour les temps allant de 4 minutes à 1h.
1h => CRON
< 4 min => sleep()
Entre les deux : Je sais pas ^^