I am having precisely the same issue and have tried everything above and all noted about this problem much discussed elsewhere.
I have also resorted to the restting the System Management Controller http://support.apple.com/kb/HT3964?viewlocale=en_US&locale=en_US
My Late 2009 iMac is the custom Intel i7 build with 8 GB Apple installed RAM and a recently replaced SEAGATE hard drive (under the APPLE extended fix arrangement). The OS was a clean install and has been upgraded to 10.8.3.
On appearance of the black screen the operating system appears to be running and responds to sleep and wake using the power button and occasionally shows the screen momentarily and sometimes briefly. Like others. the problem occurs on occassions and on those occassions persists. I also have another system purchased to hopefully get around this problem. I use this new system on the on the same supply ring main, a recent Mac Mini + screen. This sometimes has similar problems but much less often and the problems occur when the iMac has persistent problems. This leads me to think that there is a software and power mains supply problem.
I have also tried connecting the Mac mini too the mini-display-port of the iMac using the relevant cable and using the F2 toggle,. I can see the Mac mini screen even when the iMac has problems.
I live in London. our electricty supply comes from one company responsible for the national grid and pipe to customer. The billing and customer relationship is handled by a number of "suppliers". My supplier (EDF who took over London Electricity) recently included in their updates and materials, the procedure for notification of supply quality issues. This suprised me since I have not had issues of this nature to the extent of being naive on the matter. I have been told by others in the locality of similar MAC computer related problems. I have tried with and without surge supressor.
Whatever the problem, it is a nuisance to have an expensive and otherwise good iMac behave as it does. Any further input will be much appreciated.