Объяснение
Dart Future описывает один будущий результат, Stream — последовательность. async не переносит CPU-вычисление в другой isolate. Null safety требует явно моделировать отсутствие значения.
Задача для самостоятельного решения
Почему большая синхронная обработка в async-функции тормозит UI?
Показать разбор ответа
До реального ожидания она занимает UI isolate. Тяжёлые вычисления нужно дробить или переносить в isolate, учитывая стоимость передачи данных.