Usando set_time_limit() o max_execution_time, no "realmente" límites (excepto en Windows) el tiempo de ejecución, ya que como se indica en el manual de PHP:tiempo de ejecución "real" límite
Nota:
La función set_time_limit() y la directiva de configuración max_execution_time solo afectan el tiempo de ejecución del script . Cualquier tiempo dedicado a la actividad que ocurra fuera de la ejecución del script como llamadas al sistema usando sistema(), operaciones de flujo, consultas de base de datos, etc. no se incluye al determinar el tiempo máximo que se ha ejecutado el script. Esto no es así en Windows donde el tiempo medido es real.
Una solución es proposed in PHP comments que tienen un límite de tiempo "real" ejecución como lo que estoy buscando, pero me pareció claro/confuso.
El sistema que ejecuta el proceso establece un límite de tiempo de ejecución real. Puede matar el proceso si se alcanza el límite (también conocido como límite estricto). Entonces, es un límite real, normalmente basado en el tiempo de CPU, que es el tiempo real consumido por un proceso (no exactamente cuánto tiempo ya se ejecuta el proceso). – hakre
La solución sugerida en [el comentario del que está hablando] (http://www.php.net/manual/en/function.set-time-limit.php#105569) me parece buena, siempre que tenga Funciones POSIX y pcntl disponibles. ¿Qué es exactamente lo que no entiendes? – DaveRandom
Mirar más a fondo la sugerencia en los comentarios manuales de PHP fue útil :) Al principio no entendía cómo estaba funcionando (no estoy acostumbrado a manejar los hilos). –