Hasta donde recuerdo, no es fácil establecer esto ya que al exceder el tiempo, el script literalmente se muere, detectar cuánto tiempo queda disponible es poco fiable ya que el tiempo de ejecución en php se mide de forma diferente dependiendo de lo que se haga, por ejemplo la demora en las consultas a bd no afectan al tiempo de ejecución.
Algunas de las soluciones propuestas son tomar la hora al inicio y estar comprobando si va a expirar el tiempo.
Otras soluciones sugeridas que en lo personal no he usando, es el manejo de
register_shutdown() junto con el des habilitar los mensajes de error.