I was having the same problem on one of the TV's i'm using for a project (I have a few different models and i'm trying to create a generic image that works on all of them).
As part of the exit sequence if you run
tvservice -o && tvservice -p && fbset -depth 8 && fbset -depth 16 it should refresh the power state and wake up the display.
tvservice -o sends the signal to sleep the HDMI device.
tvservice -p brings it back on with preferred settings
fbset -depth 8 && fbset -depth 16 forces a change that brings X back after the sleep.
This also resolved an issue i had with the display looking like garbage after playing a standard definition video (again; only on one of the displays i have been testing against)
In my situation i have an application monitoring for omxplayer to exit which then executes that sequence. You could simply wrap the call to omxplayer or edit the omxplayer script directly.
Note: i found this thread because i was trying to find a solution to audio not working on an experimental branch of omxplayer that supports constant looping and
-r fixed me up. so thanks for that. =-)