SE-0304: Structured Concurrency

It's fine to take inspiration from other runtimes, but you have to take into account the complete concurrency story of Swift here. I.e. things which other "just async await / coroutines" do not offer: actors.

You propose:

Which is not something that we'd want to do.

Rather, the same is expressed by an actor being on a specific executor:

actor Someone { 
  let serialExecutor = ... // some specific queue or executor here
  func doFirstThing() throws -> String { ... } // will execute on the actor's executor.
}

Hope this helps answer that side of the question.

To learn more about those, please refer to: