Confirmed. This is still the case on main and in the reported v0.0.42 build. The ProviderSessionReaper file is unchanged since that release. The evidence in the report is a session-scoped CronCreate job (35f28405, one-shot at 00:13), not a cloud routine.
T3 does not start a new Claude process on every message. sendTurn queues into the live SDK query while that session is still open. A new process is started only after the previous one has been stopped, and that start passes the persisted session id as resume:
What stops it is the inactivity reaper. A provider session with no active turn and no tracked background work is stopped 30 minutes after the thread goes idle:
stopSession closes the SDK query and the CLI is signaled. The exemption is only for work T3 already tracks as background liveness: subagent fleets, workflow runs, and Monitor / background-shell watch loops. CronCreate, CronList, and CronDelete are not modeled anywhere in the Claude adapter, so a job waiting to fire does not keep the session alive. background_tasks_changed is ignored on purpose; task lifecycle events are the source of liveness, and a cron never produces one:
Claude Code only fires these tasks while that process is running and idle, and it does not catch up a fire that passed while the process was gone (scheduled tasks). --resume restores CronCreate jobs except recurring tasks that have expired and one-shots whose time has already passed. An empty CronList at 05:14 for a 00:13 one-shot matches that rule. It does not show that resume failed to restore the job. The job could not fire because the process was already dead.
There is no server log in the report, so this night could also have been a server or desktop exit, or Stop (Stop is a hard session boundary and closes the query). If the server stayed up, the reaper makes the miss inevitable once the scheduling turn has been idle for 30 minutes. provider.session.reaped with reason: "inactivity_threshold" on that thread before 00:13 would confirm it.
Leaving the thread open is not enough. The Claude process has to still be the live session at the fire time, and T3 will have stopped it half an hour after the thread went idle.