ValueTask может представлять уже готовый результат без аллокации Task либо обёртку над Task.
Разбор
- Выгоден при часто готовом результате.
- Не await-ить дважды без правил.
- Для большинства API достаточно Task.
- Это точечная оптимизация.
Итог
ValueTask — оптимизация аллокаций, не замена Task везде.