Replay the task-list flow using the session's raw message list. Swaps in ReplayChat and calls send_async so the same code path runs (task creation retry loop, parse, handle_task_list). ReplayChat returns the next session content message on each send().
| messages |
session message list (ui, system, project, etc. are skipped by ReplayChat) |