onunload e onbeforeunload sono da evitare per questo tipo di operazioni:
1) i browser gestiscono i maniere differente gli eventi
2) l'utente può bloccare le notifiche
ma se già impedisci l'uso delle pagine senza js abilitato puoi usare altri script più opportuni.
come fai se la connessione cade? l'utente ti rimane "loggato" nel db.