Non c'e` soluzione lato client.

Se l'utente ha i popup disabilitati, quel codice chiaramente non funziona.

Nel caso di chiusura della finestra, o di ricaricamento di una nuova pagina, hai a disposizione una sola istruzione (poi la pagina sparisce). Se chiami una funzione hai gia` bruciato la tua istruzione; puoi eventualmente scrivere onunload="window.open(...);" ma con la limitazione di cui sopra.

La soluzione corretta (e piu` usata) e` mettere un timeout sulle variabili di sessione del server (se l'utente non interagisce per almeno tot tempo, si e` sloggato).
Anche un bottone: "chiudi la sessione", che invia una richiesta di chiusura al server e` una ottima cosa, ma non puoi contarci.