Task tool now parses NDJSON events from subagent execution and aggregates token usage (input, output, cache read/write) and costs across all completed message_end events. Usage is stored in tool result details and included in session statistics via getUsageStatistics(). Also changed AgentSession.dispose() to async to properly flush pending writes.