se vuoi risolvere totalmente il problema ora ed in futuro, molto semplicemente metti il set_time_limit nel ciclo perché ogni volta che lo richiami non reimposta semplicemente il limite del tempo di esecuzione ma resetta anche il contatore del timeout!

quindi se lo metti nel ciclo lo script non ti durerà 2 minuti ma piuttosto un singolo giro del ciclo al massimo potrà durare 2 minuti (come misura precauzionale ... non si sa mai )