In effetti più che memorizzare lo stato della sessione con una variabile booleana dovresti memorizzare l'istante di tempo dell'ultima richiesta Tr e ricavare indirettamente lo stato della sessione in questo modo:

Tempo Attuale-Tr < tot. secondi ---> utente loggato
Tempo attuale-Tr >= tot.secondi ---> utente non loggato.

Oppure come seconda soluzione memorizzi il SessionID e crei un Thread con scope Application che controlla periodicamente lo stato delle sessioni e provveda lui stesso ad aggiornare il campo booleano del database.