As this is a long running process, you may be better getting this pushed into the background when the user starts the process, the same as the scheduled event does.
To do this, have a look at the Queue and ProcessQueue modules on the App Store. They allow you to push processes into the background so they don’t block the UI.
When you are running scheduled event, it will be running in the background so, user experience will not be affected.
User can still continue to use the system and Scheduled event will run in parallel.
When you trigger from the browser, since the user is triggering the action, until the action is done, your browser is busy processing the request and response.
I think as you are processing lot of objects you browser stops responding.
You can probably try dataviewloader, but it will still be showing the loading image until the task is done. But I am not sure if might kill the browser later due to the amount of data being processed.
You could also try to execute the microflow in the background, if you dont expect immediate response.