Here is an alternative approach to the problem with MaximumGravityRefinementLevel. I made this a PR since that's an easy way to examine and discuss code, but I should point out that this does not presently work. It is possible that this is overly simplistic. I made this a PR to facilitate comments.
Edited the title, this is a working solution.
I've updated this PR to no longer treat the SiblingGridListStorage container as a global. Now its created in EvolveHierarchy, and passed through EvolveLevel. This should be more robust than having it global. Testing is underway.