Otra opción es modificar el tamaño de la imagen que se crea al momento de hibernar.
Existe una configuración en Linux que le indica al kernel el tamaño máximo que debe tener esta imagen. Normalmente funciona bien, pero si lo que tenés que hibernar (el contenido de la RAM) es mucho más que el tamaño máximo definido, el proceso se tardará más mientras el kernel intenta hibernar todo lo que debe y a la vez mantenerse dentro del límite.
El tamaño predefinido para la imagen creada es 2/5 de la RAM, quizás aumentándolo logres mejor rendimiento:
http://www.mjmwired.net/kernel/Docum.../interface.txt
Ahora, eso no debería causar que se cuelgue, es extraño si antes funcionaba bien