setTimeout dovrebbe funzionare se la sessione non viene aggiornata (browser non ricaricato ecc.), tuttavia se si desidera un timer forzato, non importa quale quindi sarà necessario impostare un primo tempo di caricamento come variabile di sessione e controllarlo ogni minuto utilizzando javascript per vedere se il timeout è scaduto e quindi è possibile cancellare le variabili di sessione e gli elementi del modulo.

Per esempio. (Non testato)


if isset(sessionStorage.getItem('loadtime')){
// fai un controllo contro il tempo di sistema
} else {
// non è impostato in modo da impostarlo.
}