Начнем с того, что async/await четко обозначают что есть что и не дадут тебе написать хуйню и возвращают возможность писать генераторы из функций, чего в корутинах через декораторы ты просто не сможешь сделать вот никак. Во вторых - асинк генераторы существуют, если тебе оч хочется подмешивать значения на ходу, хотя по хорошему бы такую логику организовать по другому (объектами со стейтами, например). Есть футуры к тому же, если тебе надо что-то получить позже. Событийность сложно проследить тебе походу, ибо чот у других нет проблем.