ну и доп вопрос, сервер пинговал по каждому deviceId или через топик ?
механизм отправки пушей особой роли не играет (если нормально отправляется), пуш он и есть пуш.
Другой вопрос что сайлент пуши - хитрая тема, они не для "пинга" устройств, имеют минимальный приоритет, и "подстраиваются" под пользователя: то есть если пользователь не будет особо запускать приложение - то доставка сайлент пушей будет все реже и реже происходить (реже - читай с задержками).
Для более надежного пинга учше юзать обычные пуши с mutating-content. Минус этого подхода в том что пуш в любом случае отобразится пользователю (если приложение не запущено).