Headless session turns now end early if new input arrives while waiting on hooks, and gain a memory-snapshot kick
In headless sessions (running without the interactive terminal UI), a turn waits for its turn-event hooks to finish before ending. That wait now races against new input arriving on the message queue: if a hook queues new input while the turn is waiting, the current turn ends immediately so the new input can run right away, and the still-pending hook events are carried over to be settled alongside the next turn instead of being lost.
Separately, the start of a turn now kicks off a "memory snapshot" fetch, replacing a previous call, wrapped in error handling so a failure doesn't stop the turn.
This stops headless turns from stalling when a hook queues new work, letting that work run without dropping the hook results that were still in progress.