Wow, that was fast
Actually, I've been going through pm-utils docs and scripts and found out that
the new recommended way to handle this situation (ie suspend-resume kernel modules)
is to create a file in /etc/pm/config.d/ , eg /etc/pm/config.d/r8192e_pci
This works as follows:
One of the scripts in /usr/lib/pm-utils/sleep.d/ is "75modules". It will load up config files from /etc/pm/config.d/ folder and suspend-resume kernel modules defined in SUSPEND_MODULES list. (Note that this script is smart enough to concatenate all SUSPEND_MODULES as opposed to overwriting them so you don't need to worry about it.)
It should work nicely with NetworkManager because they use script 55NetworkManager, ie in the right place with relation to 75modules. But unfortunately for me, it will not work for wicd out-of-the-box, because their script is 91wicd, ie it will resume too early.
For now, I've renamed 91wicd to 74wicd, tried the above approach and can confirm that it works perfectly.
I'll try to chase up the WICD folks and I hope they are as accommodating as you are