Invoke tasks_fn.(state) to build a list of zero-arity funs, run
them all concurrently, and collect each one's return under the
collect_as key in state.
Summary
Types
@type t() :: %Caravela.Flow.Steps.Parallel{ collect_as: atom(), tasks_fn: (map() -> [(-> any())]), timeout: non_neg_integer() }