Thanks for the tip, rbistolfi.
1000 reboots later, here's the situation:
If I DON'T insert/mount any SD card, hibernate and suspend work fine when using the default hibernate config.
The only issue is that it takes quite a bit more to resume from suspend. I presume that has to do with the pciehp module, which takes quite a bit to load with those options.
If I DO mount an SD card, unmount and take it out, then hibernate doesn't work. Trying modprobe -r on the relevant modules doesn't work, because the jmb module loads the memstick module, which cannot be removed because "it's in use" (even though there's no card on the slot). I also get some weird error messages when trying to shutdown.
Putting all three modules in the blacklisted modules of hibernate also works when no card has been mounted.
And it's faster.
BUT again, even with the blacklisted modules, it cannot go into hibernate after putting a card in the slot (again, I presume, because those 3 modules -- or just memstick -- are in use). It's even worse, because then it seems to go "half way" into hibernate. I lose the wireless module, and when shutting down, it hangs at trying to stop alsa.
So, the problem is once a card goes in, things get messy and there's no way to get rid of the modules (even if the card goes out before hibernate)... ahhh, despair.