Dovresti fare entrambe le cose, e alcune volte non basta, mi spiego meglio:

session_set_cookie_params fa in modo che il client ricordi la sessione per tot secondi
session.gc_maxlifetime settato in php.ini fa in modo che il server ricordi la sessione per tot secondi

Quindi sono due cose un po' diverse, una lavora sul client ed una sul server.
Oltre a questo, per complicare le cose, le sessioni sul server vengono di fatto cancellate quando viene eseguito il garbage collector, che può essere impostato in maniera molto diversa semplicemente cambiando server.

Il consiglio che ti do è usare entrambe le impostazioni, per il client e per il server, questo dovrebbe darti un controllo abbastanza buono.
Se invece vuoi un controllo perfetto credo tu debba gestire il tutto tramite php, con conseguente aumento del carico di lavoro sul server.