We also hit this roadblock and moved to ServiceWorkers instead. Much nicer and more granular, but alas, not supported on iOS yet (we are using an App for mobile, so it’s not an issue for us).
The problem is that the reload does nothing more than refresh the current page, which comes from the AppCache, so you keep going in circles. We tried a similar solution to yours but it was too lengthy to debug and test. But the essence is the same, you have to do a full reload of the page, not just a replace like in here
However, I am surprised you didn’t have to modify the AppCache package to not cache / (first line in the caching sections). Are you using stock AppCache package from MDG?