Stop resetting lastContextWindowUsedTokens between turns. The result.usage fallback contains accumulated session totals which grow incorrectly across turns. Once a task_progress arrives, its value is the accurate context fill level and should be retained until the next task_progress supersedes it.