Log per-turn reply timing
The existing reply-start log records a total wait but has no turn-close or tool breakdown, so a long pause after candidate speech cannot be explained. This adds one codetrial turn_timing summary when the first reply audio is accepted, with observed wait and turn-close times, tool-call count and durations, and the remaining unattributed wait.
Missing or out-of-order boundaries are marked unknown. Speech-end proxies are labeled by source, and the measurement ends at audio queue acceptance. Tool intervals are clipped to the wait window and overlapping work is counted once. Turns that end without audio carry an outcome; recovery and interruption settings are unchanged.
Validated against main at a3f3e80 with make indent, ./scripts/test.sh, make build, and a live LiveKit/Gemini speech and tool reply check. Full mutation testing and cross-platform builds remain for CI.
Closes #234
Summary by cubic
Adds a codetrial turn_timing log line that breaks down each reply wait into turn-close, tool, and residual components, so long pauses have evidence instead of one opaque number. The measurement now preserves voice-activity ordering and carries timing across turn boundaries correctly, refusing stale PCM and late transcripts that would otherwise reopen or shift a completed wait. Missing or reordered boundaries stay unknown rather than being assigned zero, and the measurement ends at audio queue acceptance. Adds docs and unit tests; interruption and recovery policy are unchanged.