Hm, then uswsuspend might be also broken with the recent kernel. This method isn't used by many distros, so little tested, I'm afraid. As of now, the current solution seems to go to the direction to change the default sleep method. Many things have been discussed in bug 925873. So, further debugging of /usr/sbin/resume might not help much... Maybe it's better to concentrate on stabilization of kernel hibernation. That is, check more details about the S4 resume failure (not hang) with DEFAULT_SLEEP=kernel. For example, whether this happens really only with pm-utils or not, etc.