run
Runs block for key, or joins an execution already in flight for an equal key.
The caller that starts the execution runs block in its own context; joining callers only wait. Every participant receives the same value, or the same failure thrown as-is.
Cancellation: cancelling the executing caller cancels the shared execution; joining callers do not inherit that cancellation, they retry with a fresh execution instead. Cancelling a joining caller only stops its wait and rethrows. Flight cleanup runs in a NonCancellable context, so a cancelled execution never leaks its key.