Practically speaking it’s easier to grasp. The article in question makes a good point of playing around with the concepts to dispel the magic.
Asnyc/await is just syntactic sugar for promises.
Promises are just wrappers around callbacks.
Callbacks are used to hook functions into an event loop. The dispatching/scheduling is handled there.
So really when you use async/await, you’re just writing pseudo-sequential code that gets turned into callback code.
This is also why a function can only await if it’s marked as async. It’s callbacks, function coloring leaking out so to speak.