Most push notifications are delivered to target devices within a few minutes (typically within 10 minutes) from the time they are sent to Notification Hubs.
The Azure Notification Hubs has a policy in place to drop any push notifications that aren't delivered to the PNS within 30 minutes.
That is, If a push notification service attempts to deliver a notification but the device is offline, the notification is stored by the push notification service. It's stored for only a limited period of time. The notification is delivered to the device when the device becomes available.
Each app stores only one recent notification. If multiple notifications are sent while a device is offline, each new notification causes the last one to be discarded. Keeping only the newest notification is called coalescing in APNs and collapsing in FCM. (FCM uses a collapsing key.) When the device remains offline for a long time, notifications that were stored for the device are discarded.
Just to highlight for more clarity:
There could be several issues (one common reason (delays) could be throttling), because of the nature of push notifications (they are delivered by an external, platform specific PNS), there is no latency guarantee. Typically, the majority of push notifications are delivered within a few minutes.
Push notifications depend on third-party Platform Notification Systems such as Apple's Push Notification Service
(APNs) and Google's Firebase Cloud Messaging
(FCM), there is no SLA guarantee for the delivery of these messages. After Notification Hubs sends the batches to Platform Notification Systems (SLA guaranteed), it is the responsibility of the Platform Notification Systems to deliver the pushes (no SLA guaranteed).
Push notifications with Azure Notification Hubs: Frequently asked questions