Where in the Javascript event chain does the browser's "return to original position" occur following refresh?

The "return to original position" behavior is a feature that browsers have added as a bonus, not one that is standardized. I don't think that there is a specific event that is a "browser has scrolled because of a page refresh" event.

However, if the browser is behaving properly, I suspect it should fire an onscroll event on the window when it scrolls. This will necessarily be after the page load event (because otherwise the browser has nothing to scroll to, so I would look for the scroll event after the load event and infer that the page has been scrolled by the browser.

Keep in mind you'll have to successfully handle the case where the page is not refreshed and you don't get an onscroll event. Therefore, what I would do (if possible) is to assume that the page is not scrolled, and then if you do get the onscroll event, start over again by repositioning with the new location in mind. There's a bit of a "flash" there where things are loading and then reloading, but this will handle the asynchronous nature of the callbacks.