I’ve searched for something similar and came up with this solution: Tracking render performance
Im hooking into the rendering process and presume that if there was no rendering process for 1 second the page is loaded, rendered and visible to the user. This time - the delay is my actual page load time. Except that a debugger corrupts this time it seem to work quite well.