Identify speaker is in the middle of the chain on purpose. There is no speaker to label until there is language on a page.
Temptation to overlap
Dio makes it easy to fire the next call because the last future completed, or to overlap calls that look independent. Overlapping the wrong ones is the bug in the sequence post.
Labels on the wrong text
If speaker ID runs on a partial or missing transcript, the summary inherits the mess. The LLM waits.
Status
Show identifying the speaker as its own step. One spinner for the whole visit hides where it broke.