a6de04a297
In TimedScriptEvaluator.RunAsync, the catch (TimeoutException) block now checks ct.IsCancellationRequested before throwing ScriptTimeoutException, so a caller cancellation that races a timeout deterministically surfaces as OperationCanceledException regardless of which WaitAsync observes first. Regression test Caller_cancellation_wins_even_when_timeout_fires_first added. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>