Почему тяжёлый код в onStartCommand блокирует экран?Service по умолчанию работает в процессе приложения и не создаёт отдельный поток. Callback может занять Main. Android: Service.
Когда нужен WorkManager вместо viewModelScope?Когда отложенная работа должна оставаться запланированной независимо от экрана и завершения процесса. Работа, нужная только экрану, может принадлежать его scope. WorkManager.
Выполнит ли WorkManager задачу точно через 10 минут?Нет: задержка задаёт нижнюю границу, а реальный запуск зависит от ограничений и планировщика. Для точного времени нужно отдельно оценить подходящий API и ограничения платформы. WorkManager.
Спасает ли unique work от повторного списания денег?Нет. Уникальность планирования не делает сетевой эффект exactly-once. В рассматриваемом сценарии нужен стабильный ID операции и серверная дедупликация. WorkManager.
Можно ли всегда стартовать FGS из фона при target API 31+?Нет на Android 12+: есть ограничения и перечисленные исключения. Наличие уведомления само по себе не выдаёт разрешение на запуск. Ограничения FGS.
Что делать, если работу остановили посреди запроса?Освободить локальные ресурсы, учитывать отмену и не считать локальную остановку доказательством того, что сервер ничего не сделал. Следующая попытка должна корректно обработать неопределённый исход предыдущей. WorkManager.