Hi.
1. domready is not exists in nature. It is absolutely virtual. So did not wait that engine should implement it.
2. OnLoadEnd it is exactly main insertion point on which you should rely.
3. In OnLoadEnd event it is not a bad idea to post a CEF task to main thread, to give chance other messages to be processed. In this case it will be very similar to chromium's FrameLoadWaiter what are used in tests.
If it is still not enough (i'm discover some issues, but not remember that in exactly with same case), it is can be enforced via executing JS just for proper queuing (i.e. execute js with callback).
Alternative ideas:
Playing more with V8/JS, and expose callbacks based on JS events (like document.onload).