Oh well, even if the manual says: Note: all the expiration times are relative to session's last access time, not to its creation time. To expire a session immediately, call delete(). To expire a specific session parameter immediately, call clear($name).
... it really wasn't quite like that for me. Maybe a bug ;P Anyway, I got it working by expiring a parameter; this way the session is stil valid but the parameter expires and you can call login if $s->param('login_param') is not set. When calling login one can do a $s->delete() and $s->flush() to clean the session database.