However the browser doesn't draw the contents of the page until after
Page_Load() is complete, though I wish it would.
The browser draws the page once it receives all the HTML.
Am I putting my operation in the wrong place? Where do I put a process
that I want run immediately after the page is first completely shown?
Once the page is completely shown, it's done with the server. The
transaction is complete. By the time your browser starts getting the HTML,
all your code has already been completely executed server-side.
The only option off the top of my head would be to do all this via ajax.
Load the page, then call the long process you are running via a javascript
call on the page, which will then update the relevant portion via AJAX. Of
course, using AJAX brings in a bunch of accessibility/usability issues that
you'd want to weigh as well.
-Darrel