Sessions
A session starts on first launch and ends after sessionTimeoutMinutes of inactivity. The SDK emits session_start when a session begins and session_end (carrying duration_seconds) once the previous session is found to have expired. Sessions survive app restarts within the timeout window.