It is a bad idea to stall loops for long time periods. The stop button works just fine (unless you use an unusual mechanical action setting) but the loop cannot complete until everyhting in it (including the long wait) has completed.
In order to update indicators (e.g. a progress bar), the loop needs to actually spin. There is only one update per loop iteration.
Easiest would be to use the timeout of an event structure to trigger a collection. Use other events to immediately break the timout and apply new settings, etc..
(Please attach actual code instead of an image)