More the latter, though now that I'm thinking about it, it seems like there's maybe a race condition where:

1. We receive a rejection from the gateway and put all of the notifications in the buffer back into the `PushManager`'s retry queue.
2. A previous write attempt succeeds and the notification is put into the retry buffer.
3. We notice that the connection has closed.
4. Everything shuts down, but that last notification to land in the buffer is incorrectly treated as "successfully sent."

So I'm not sure yet where the right place to handle that is, but I think it may be a problem.