FanOut
/fan-out Tier 1
Execute an action concurrently for each item in a slice, preserving input order in the returned slice. Bounded concurrency via semaphore channel. Respects context cancellation for both launch and result collection.
Signature
action contractfunc FanOut[Req, Res any](ctx, act *BuiltAction[Req, Res], reqs []Req, maxConcurrency int) []AsyncResult[Res]