I wasn't attempting to defend JavaScript design choices. I'm just stating that working with blocking vs non-blocking code is now MUCH easier (and less error prone) since we have async/await.
Callback-hell and Promise-hell were real issues that plagued any project of significant size.
Oh yeh sorry I didn't mean to give the impression I thought you were wrong. I 100% agree with you.
I remember the first time I experienced "callback hell" (2016, for me, but I'm sure it was a huge problem for others before then) when I was doing some JavaScript stuff implementing Keybase's library for GPG support - I learned they'd built a whole separate JavaScript thing called IcedCoffeeScript[1] specifically to add await/defer support to get rid of those huge callback pyramids.
Callback-hell and Promise-hell were real issues that plagued any project of significant size.