You're putting a lot of care and effort into this Marc. As a customer I thank you a bunch.
I always assume that the cap is actually less than the one stated otherwise there is a risk of constantly going over ... even by just a little bit. It's particularly tricky to manage on the final day of the period because there's no correction one can make other than possibly paying a penaly.
The hysterisis you've added helps that situation by allowing the previous month to be used as a bank. Still, there is no easy way to get exactly the cap month-by-month without possibly triggering a penalty. The net effect is that the more customers stay below the cap the better the insurance against activating a penalty.