run
suspend fun <T> run(descriptor: OperationDescriptor, classify: (T) -> OperationResult = { OperationResult(OperationTerminalStatus.Success) }, block: suspend () -> T): T
Run block as a tracked operation: enroll it in active, run it, classify the result into a terminal OperationOutcome (emitted on outcomes), and de-enroll in finally — whether block returns OR throws.
classify maps a NORMAL return to its real status (e.g. a SendResult.Failed is a returned failure, not a thrown one); a thrown exception is always OperationTerminalStatus.Failed and is rethrown so structured concurrency keeps working.