Потому что с конст дженериками у тебя возникает куча проблем, которые никак кроме прям тупого бойлерпрлейта не решаются. Всё труба, только копипаста макросами или руками.
Код без асинк/авейта от таких проблем не страдает.
Код без async-await страдает от невозможности держать ссылки на локальные переменные между вызовами poll