I'm thinking maybe a AutoHotKey automation of opening power settings and disabling hibernate would do the trick.
These should work for Windows XP. You may have to modify them for other flavors of windows.
Hibernate Off
WinWait, Program Manager,
IfWinNotActive, Program Manager, , WinActivate, Program Manager,
WinWaitActive, Program Manager,
Send, {LWINDOWN}r{LWINUP}
WinWait, Run,
IfWinNotActive, Run, , WinActivate, Run,
WinWaitActive, Run,
Send, powercfg.cpl{ENTER}
WinWait, Power Options Properties,
IfWinNotActive, Power Options Properties, , WinActivate, Power Options Properties,
WinWaitActive, Power Options Properties,
Send, {CTRLDOWN}{TAB}{TAB}{CTRLUP}{SPACE}{ENTER}
Hibernate On - Change the number of {UP} on the last line to adjust the hibernate time.
WinWait, Program Manager,
IfWinNotActive, Program Manager, , WinActivate, Program Manager,
WinWaitActive, Program Manager,
Send, {LWINDOWN}r{LWINUP}
WinWait, Run,
IfWinNotActive, Run, , WinActivate, Run,
WinWaitActive, Run,
Send, powercfg.cpl{ENTER}
WinWait, Power Options Properties,
IfWinNotActive, Power Options Properties, , WinActivate, Power Options Properties,
WinWaitActive, Power Options Properties,
Send, {CTRLDOWN}{TAB}{TAB}{CTRLUP}{SPACE}{ALTDOWN}a{ALTUP}{CTRLDOWN}{TAB}{TAB}{CTRLUP}{ALTDOWN}h{ALTUP}{UP}{UP}{UP}{UP}{UP}{ENTER}
You could compile those and then run them using Task Scheduler to stop the hibernation process. The attached files should turn it off and turn it back on with a 3 hour delay.