cancel Scenario
Cancel a single scenario by name without stopping the rest of the sweep. Looks up the scenario's coroutine job and issues a cooperative cancellation against it. Returns true when a running scenario was found; false when the name is unknown, has already finished, or hasn't started yet.
Cancelled scenarios produce a null snapshot in the commit phase, so RunEvent.ScenarioCompleted is emitted for them with snapshot == null. Sibling scenarios continue to run because simulate wraps each scenario's async in a supervisorScope, preventing one child's cancellation from propagating to the others.
A scenario whose replications have all finished is not cancellable: its result is already computed and owed to the caller, so the request is refused and the result is committed normally. The hand-off is a compare-and-set, so a cancel and a result can never both win.
Cancellation is cooperative and takes effect between replications: ConcurrentSimulationRunner checks for it before starting each one, so the replication already in progress runs to completion and none of the remaining replications start. The scenario's partial work is then discarded rather than committed — cancelling buys back the rest of the run, not the current replication.