Complementado la respuesta de hades87 (concuerdo en que se ve un poco largo lo que pretendes hacer) Tu puedes activar con ini_set el tiempo de ejecución máximo de un script. Solo deberias colocar algo así al comienzo del script. Por defecto el servidor suele estar configurado a 30 segundos. Si el proceso demora mucho pues con ajax ponle un gif animado para que el usuario sepa que su proceso se demora en cargar.
Código PHP:
ini_set('max_execution_time', 300); //300 seconds = 5 minutes