the gc (garbage collection) stuff deletes session data when all the following are true:
The time since the last access of that session data was more than session.gc_maxlifetime seconds ago, AND
Any script that uses the same session data directory does a sessions_start(), AND
A random number between 0 and 1 is less than the value of session.gc_probability / session.gc_divisor.
Additionally, I'm not sure what the sequence of events are, but my guess is that if the session_start() is from a request with a still-valid session cookie, then the session data for that session ID is accessed before the garbage collection is executed (if the random number versus the probability says to), so that particular session's data would not be seen as "garbage".
Ultimately, the garbage collection is a background maintenance activity designed to keep disk drives from filling up with old session data -- it is not really intended as a means to time out sessions, that being best controlled by the cookie setting.