When does Promise resolve/reject actually add a micro task?
Basically immediately at resolve or rejection - but ... it is asyncronous.
Note: The way you formulated that question shows me, that you are aware of being added to the micro task queue not being equal to execution...
...the event loop feeds tasks into the call stack only if it is empty of all synchronous calls, and prioritises micro tasks (promises) over tasks (web api etc.).
await
blends into your synchronous, liniar code. The promise must be fulfilled in order for the await code to be executed. It literally means await the fulfillment of the promise before you execute.