A tool call whose tool.use has fired but whose result has not arrived.
Bundling the name and args into one record keeps them structurally in
lock-step: a single dict[str, InFlightToolCall] cannot represent an id with
args but no name (or vice versa), which two parallel dicts could. That
removes the desync failure mode where an orphaned drain would emit a
tool.error with an empty tool_name.