the best async/concurrency model i know is verse [1], a language made for fortnite scripting because tim sweeney decided he wants something with "metaverse" in the name. instead of async/await or verbose callbacks its all combinators. from their docs:
# Nested blocks for complex operations
sync:
block: # Task 1 - sequential operations
LoadTexture()
ApplyTexture()
block: # Task 2 - parallel to task 1
LoadSound()
PlaySound()
LoadModel() # Task 3 - parallel to tasks 1 and 2
[1] https://verselang.github.io/book/14_concurrency/#structured-...