Ensures pending sessions are committed on process exit even if shutdown_memory_provider is never called (gateway crash, SIGKILL, or exception in _async_flush_memories preventing shutdown). Also reorders on_session_end to wait for the pending sync thread before checking turn_count, so the last turn's messages are flushed. Based on PR #4919 by dagbs.