fix: Show run summary after TUI exits (#12471)
## Summary
- The run summary (Tasks/Cached/Time) was never printed when using the
TUI because `visitor.visit()` sent `Event::Stop` to the TUI before
`visitor.finish()` had a chance to emit the summary log events via
`ExecutionSummary::print()`. By the time the summary was emitted, the
TUI event loop had already exited and the events were dropped.
- Removes the early Stop from `visitor.visit()` — `commands/run.rs`
already sends Stop after `run.run()` returns, which is after the summary
is emitted.
- Adds `persist_summary()` to replay `Subsystem::Summary` log events to
stdout during TUI cleanup (both the terminal-started and all-cache-hits
paths).
## How to test
1. Run `turbo run build` (or any task) with the TUI enabled
2. After the TUI exits, the summary should now appear below the task
output:
```
Tasks: 3 successful, 3 total
Cached: 2 cached, 3 total
Time: 1.5s
```
3. Verify it works for both cache-miss runs (TUI renders) and
fully-cached runs (TUI never starts the alternate screen)