Not completely sure of this issue. However, suspend to RAM is still a little *unpredictable* at best. It relies heavily on your specific hardware/manufacturer and how well supported it is in linux.
A good work-around which worked for my toshiba laptop was to unload the kernel modules for the devices that cause problems when going to suspend and then reload them when the machine wakes up.
Perhaps this will wokr for you too
The jist of it is that you'll need to find out the module(s) used by your modem then write a little script that executes when the machine goes to suspend. This script will unload the modules, and later (when the machine wakes up) re-load them.
Google is your friend