Y claro, el que sabe que termino la sesion es el server, pero no la pagina del lado del cliente.
Deja una pagina mas de 20' y no se va a "avivar" que termino la sesion.
Para eso refrescas y verificas cada tanto con el timer.
Entendes ahora?