Как вариант: пуш будит приложение, оно запускает сервис, сервис тянет данные. Закончив принятие данных сервис уведомляет приложение.
Сервис не заснет, если реализован как foreground-сервис, но тогда он должен иметь незакрываемое уведомление, которое будет висеть в шторке. Пример такого сервиса - любой нормальный аудиоплеер