OP, if i understand, your problem is the modem going offline for whatever reason.
Why are you resetting the Arduino?
As i mentioned earlier, there are reliable ways of determining if the modem has ‘locked up’ or is unregistered... then power cycle the modem shield.
Leave the Arduino host cpu alone.