Wrapper of Task that mantains the span context
@spec async((() -> any())) :: Task.t()
@spec await(Task.t()) :: term()
@spec start((() -> any())) :: {:ok, pid()}