1) .. lo define: session.gc_maxtimelife .. (como directiva de configuración de php.ini) pero, .. no es "normal" manejar ese tiempo de expiración en una sesión haciendolas todas que expiren al salir de tu aplicación (al cerrar la última ventana de tu sitio) .. Las sesiones se usan para mantener datos entre un flujo de "scripts/pantallas" no tanto para mantener por tiempo un dato como puede ser con el uso de cookies.
2) En
www.php.net/session_destroy te indica como tienes que hacerlo.
3) Si, es necesario que siempre antes de acceder a una variable de sesión la "inicies o continues" usando session_start() antes de cualquier acceso/modificación/creación de una variable de sesión.
Un saludo,
PD: Se te olvida un tema muyyy importante sobre sesiones: EL SID .. revisalo en
www.php.net/sesssion (o usa el buscador del foro .. se habla muy amenudo de esto).