Lamento decirte que necesitas usar una base de datos o algún medio persistente para poder identificar cuando el usuario inicio la sesión. No puedes hacerlo desde las sesiones ya que estas no se comunican entre ellas.
Una forma de identificar si un usuario ya no esta en tu pagina es guardando un tiempo de vida, y con un cron job, que se ejecute cada por decir 10 minutos, verifiques si este tiempo de vida es mayor a la ultima actividad, y en ese caso desloguear al usuario.
Otra forma es utilizando
session_set_save_handler, pero debes de implementar el codigo para todas las funciones no solo para el garbage collector.
Saludos.