Все зависит от того, что юзер должен делать: сидеть и тупить в экран, ожидая окончания синхронизации, или же именно параллельно что-то делать. Если параллельно - то делай в сервисе, в фоне.
FCM передает за один пакет до 4 килобайт текста, не "слишком моментально", но при небольшой нагрузке (кол-ве запросов в секунду) - бесплатно.
Ну, а нагрузка на Андроид - так любые клиент-серверные системы работают точно также, мессенджеры, клиенты сайтов.... И у всех foreground сервисы, которые системой не убиваются.