When I use the pivot table widget myself, I create a non-persistent entity and tie that to all persistent objects necessary. I start the page using a microflow that creates an object and then shows the page. The page has the non-persistent entity as data view entity. After that the pivot table widget calls the get data microflow, which does the data crunching.
A context change or commit then only applies to one page.
The pivot table demo project works like this too.
I have taken a look at your project and been able to replicate the issue. The issue seems to occur whilst using the pivot chart widget. I believe that it isn't reporting back to the Mendix web client that it has finished fully loading when an update to the page occurs.
This issue can be replicated by placing the widget on page, loading it and then clicking a home button or microflow button that opens up the same page. It will load the widget, but then you will get an infinite progress bar.
I would suggest that you contact the developer of the widget: https://forum.mendix.com/users/12248/Marcel%20Groeneweg/
I have looked at the test project you sent me.
I looked at the logging in the browser console. The first time everything works fine. The second time, a new widget is created, but the old one has not yet been destroyed. Noticable because the new widget instance starts logging the call to get data, only after that the first widget logs its uninitialize call. The second time, everything happens twice, can also be seen in the log. This happens because Account is the context object and gets committed with every button click. The microflow has refresh in client turned on for the change object and also shows page which has the same object as context object.
I tried turning off the refresh in client, this seems to fix the issue: no more endless progress bars no matter how often I jump around the pages.