@dln949: Your problem may have the same underlying cause as mine, but I'm not prepared to do much testing for your use case right now. I signed up for a data-only SIM from JMP, but haven't received an invite yet. The rates on my current data-only SIM are really high, so my testing has been limited to Wi-Fi only. I also wanted to eliminate data-saver as a possible cause, and I don't need it enabled on Wi-Fi. Just for clarification though, are you saying you never experience missed call notifications while on Wi-Fi?
@SilkSow: I experienced something similar and asked Cheogram Support about it too:
As a result of the network issue, the phone receives a call request, but a cancel request is never sent because the other side sees the connection failure and does not send the cancel request as it assumes it is unnecessary. So when your device finally connects, it still receives the call request that was queued up on the server, but never a cancel request.
Devs forgive me if I'm way off base here. It's been years since I've done this kind of troubleshooting, and Android has changed a lot since then. I'm wondering if this is a message buffering issue rather than a network issue. The phone receives the incoming call notification from the server, but doesn't process it because the screen is asleep. Waking up the screen flushes a buffer and the notification comes through. Ping requires a response from the phone, which may also flush a buffer.
Answering my own question regarding other workarounds: I'm going to test a few different notification settings. I'm wondering if changes to any of these will make the phone process the incoming call notification more consistently.
As a last resort I will also try enabling always-on-display. Normally I'd worry about battery life, but that's been so good with GrapheneOS, it may be a viable solution.