Well maybe the new App Connect Flow will help you.
If you can split your server action to smaller separate server actions, you can call them in a flow and report progress from the flow after each step.
As flows run client side you can access all the page data and build and update progress bars as you wish.