I had the same problem but after compiling the kernel with most USB options under 'Device Drivers -> USB Support' being compiled as modules and unloading thenm while suspending resulted in suspend working perfectly with the following script : (Note - vbetool is used to get the LCD to turn back on)
Code:
#!/bin/sh
# switch to virtual terminal 1 to avoid graphics
# corruption in X
chvt 1
#remove modules
rmmod uhci_hcd
rmmod ehci_hcd
# write all unwritten data (just in case)
sync
# suspend display
vbetool vbestate save > /tmp/db
vbetool dpms suspend
# suspend
echo -n mem > /sys/power/state
# resume display
vbetool vbestate restore < /tmp/db
vbetool dpms on
modprobe ehci_hcd
modprobe uhci_hcd
rm /tmp/db
# switch back to virtual terminal 7 (running X)
chvt 7
I hope this works for you guys. I had to bust my ass to try and get this working and will be very glad to know that it helped others.