Ok, so you model "active" and "pending" and "when" (a datetime).
One approach is that you can make a simple formula that computes the limit based on four inputs: active, pending, when, and current datetime. Nothing further do do here — no housekeeping needed, as this formula will work into the future. (That formula is currentDateTime <= when ? active : pending).
Then at some point need to switch over from active to pending, but only when user wants the limit is increased once again: copy pending to active (if it is pending is up to date, i.e. currentDateTime > when) and make pending the new request to increase, while setting the new when. If pending is not currently in effect then can error: ask the user to try again, e.g. tomorrow.
So, you only need housekeeping when the user wants to update their setting — otherwise nothing to do on a daily basis.
If you want to accept as series of increases that are then to happen day over day that is another simple matter of programming involving a queue an some user interfaces to modify it.