Beh, la sessione non viene cancellata magicamente, c'e' il garbage collector(gc) che si occupa di questo.
E il garbage collector di default ha una probabilita' di avviarsi al inizio della sessione pari a 1/100. Di conseguenza, se per qualche stranissimo motivo hai bisogno di sessioni che durino 3 secondi, devi aumentare la probabilita' del gc, che e' definita dal rapporto tra session.gc_probability e session.gc_divisor.
Con altre parole, fai:
Codice PHP:
ini_set("session.gc_maxlifetime", "3");
ini_set("session.gc_probability","1");
ini_set("session.gc_divisor","1");
e tutto funzionera' come ti aspetti.
Ma tieni presente che in questo modo fai partire il gc ad ogni inizio sessione, cosa che si riflettera' inevitabilmente sulle prestazioni, in uno scenario con molti script/molte richieste. Non saprei se in modo grave; mai fatto cose del genere.