Тем что торнадо пилился под Python 2, когда ещё в помине не было asyncio в питоне. И потому там будет много всяких легаси решений для сохранения совместимости. Лучше сразу использовать asyncio чем обёртку вокруг него.
Это не так, на питоне > 3.5 и торнадо > 4 никакого легаси нет, если ты его сам туда (зачем-то) не впихнешь. Торнадо использует async/await и asyncio ивент луп, можно uvloop заюзать