мдаа... перепишите без async/await и всё понятно станет. Это ещё раз подчеркивает, что async/await - очень плохое добавление в язык (
ну как обычно, в этом с тобой не соглашусь ) это подчеркивает только то что асинхронность никуда не пропадает, и её просто всё так же нужно уметь готовить.
цепочка промисов или стена колбэков были бы не лучше, выстрелить в ногу там тоже хорошо можно, и по невнимательности даже проще, чем с генераторами.