Hola:
Me suena a una solución híbrida... por ejemplo con una variable de sesión con la hora de inicio de la cuenta regresiva y se actualice con los refreshs, y esa variable de sesión sea la semilla de la variable que inicialice un setTimeout en el navegador
Si no se te ocurre cómo, luego trato de hacerlo (toca siesta)
Saludos