Both Google and Apple have rate limits on push notifications that limit repeated messages like this, and each have their own criteria for limiting them. When there is a failed push notification to a device Mattermost also removes the DeviceId from that session so that there aren’t multiple push requests sent, which will cause Apple and Google to blacklist Mattermost push notifications. So the push notification system appears to be working as written. There was another report on this recently and this feedback has been passed along to the product team to consider a possible workaround.
On top of the rate limit explanation shared by @amy.blais , I would also be interested to see if there are any log entries that can provide more information to the behavior you are seeing as well.
The following guide should help to enable logging while testing the behavior: