QueuePicker's raw-SQL Queued->Running claim bypasses TaskStateService.StartRunningAsync, the only other place that broadcasts TaskUpdated on this transition, so the task-list badge stayed on "Queued" until the run finished. Send TaskUpdated for alreadyClaimed dispatches in TaskRunner.RunAsync/ContinueAsync to close that gap.