in reply to Server time-out

The problem with running it in real time is that, I would assume, the process will die if the user closes the browser window during the period it's running also.

I have done what you suggest. The user interacts with the app to notify the process to start at some point and is then notified when the process is done via email with a link on were to pickup their results.

You could have the process running in a look or via cron looking for requests from users that it run along with whatever config information it needs to run for that user.