I hope this helps: If I modify the builtin "suspend" command to be /usr/sbin/pm-hibernate then hibernation works perfectly. But when I put that into a custom command, the crash occurs. So customs commands somehow work differently to the built in Suspend command.