I've been having this problem since Vista. And, it's still happening on Windows 7. So, I decided to search around to find a solution. Here is the combined solution that worked for me:
1) Start Device Manager. This can be done (1) by right-clicking on My Computer and selecting Manage. Or (2) clicking the Start menu and typing device manager. Or (3) other ways.
2) Expand the Universal Serial Bus Controllers node.
3) For each instances of Generic USB Hub and USB Root Hub, right-click and go to Power Management tab.
4) Uncheck the option: Allow the computer to turn off this device to save power.
5) Repeat for ALL instances of Generic USB Hub and USB Root Hub.
6) Then, refresh everything by right-clicking and selecting Scan for Hardware Changes. Now, double-check all nodes you've changed and see if any has reverted back to the previous settings. On mine, one of the nodes kept resetting the power management. If this happens, just uncheck the box again and repeat the refresh until it sticks.
7) Retry sleeping or hibernating. It should now resume properly.
If that still doesn't work, you need to change some registry keys.
1) Open regedit. This can be done by clicking Start and typing regedit.
2) Navigate to HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services.
3) Add new key with name: USB
4) Add new DWORD Value. Name it: DisableSelectiveSuspend with value of 1.
5) Exit the registry editor.
6) Now try it again.
I hope this helps! Enjoy!