Try installing some temperature monitoring software and see what kind of temps you are getting when this happens. Be sure the program to log the temps so that if it turns off you can see what they were when you get back on the computer.
I suggest this because of your saying it can take hours to be able to turn on again, which is definitely a sign of overheating. Something you don't want to let continue for long as it can fry many internal parts.