Hello . .
When dealing with large data process such as updating db, add, delete, etc. I usually utilize partial progress/pagination where we don't execute the process at once,
Instead we split them to be, for example only run 100 items/process and then continue to 100 - 200/items, and go on
This way we would have mark where the process stops and avoid server time out.
Since you do have the plugin already, I think we could utilize/duplicate that plugin ( only pricing update function ), and create new plugin which works by paginating, so you would know where the process is running while staying in the page, and possible of pause/resume the process.
Please let me know what you think :)
Thank you and regards,
Eni