Hi Michael,
yes it can be very frustrating. I can't reply for Rain but my own experiences might help you.
1) the first thing to check is the signal strength on your receiving end. If that is bad you will have problems. So one should start by checking that out. To make that possible I wrote an app in Python that polls the 5G modem once a second to retrieve the signal strength(RSRP) and signal to noise ratio(SINR). The app(called 5gtop) is on Github and here is the link
Monitor the signal performance of Huawei 4G/5G modems - pdo-smith/5gtop
github.com
What I found appalled me. My signal strength was very poor. In retrospect that wasn't surprising since the nearest Rain tower is 3.1 km away and the view is blocked by a high ivy hedge..
Using my app to guide me I moved the modem around and eventually found one good spot. This was on the outside wall of my study just under the roof eaves. I trimmed the ivy hedge and that also helped.
This largely solved my problem, see the screen shot from 5gtop, below
View attachment 1430139
I had to put a protective cover over my modem since it was outdoors and that works well. Though it rains(!) so seldom here in PE that I need hardly have bothered.
2) Load shedding still caused long signal dropouts, even though I switched to a backup 12V battery. I then made an adapter cable to directly connect the modem to the 12V battery instead or working through the inverter. The battery I permanently trickle charge at 13.15V. The modem is nominally 12V but it seems to tolerate 13.15 V without problems.
And this solved all my problems. I have a good signal with no more dropouts and high download speeds.
So why did this work?
1) Finding the optimum spot for my modem gave me good signal strength. My app made this tedius task quick and easy. The lights on the front of the modem are, in my opinion, a poor guide.
2) Keeping the modem on permanently by means of the 12V battery seems to be key.
3) The battery supplies a clean voltage without spikes or noise. I suspect, though I can't prove it, that our load shedding environment is causing a lot of electrical interference. Inverters normally do not supply a pure sine wave so this might add to the problem.
I hope this information is helpful. I am using a small 7.4 Ah 12 V battery which seems to be just fine for the job. I notice that you are on Apple so you won't be able to use either of the two binaries I supply. But you can still run it as a Python app. It just takes a little more work to set it up. I am not the fortunate owner of an Apple so have not been able to test my app in that environment.
Good luck.