Creo que alguna vez tambien me paso algo parecido.
Recuerdo que en ese entonces el problema que mencionas se me soluciono especificando tambien, ademas de la duracion, la ubicacion en donde seria guardada la sesion. Proba con esto y contame:
Código PHP:
ini_set("session.gc_maxlifetime","1440"); //segs a tu necesidad
$ruta='../sesiones'; // cambiala a tu necesidad
session_save_path("$ruta");
sesion_start();
.
.
.