Firstly: Have a series of priority bands, ranging from high priority, to low priority
Second: Have a page that dynamically updates showing the expected range/expected maximums anyone who is in a given band should presently be able to expect.
Price Priority bands differently per G, possibly with exponential scaling, so that band 0 costs half the price of band 1, band 1 costs half the price of band 2, etc.
Thirdly, allow customers to dynamically switch which band they are via a web interface, either to dynamically switch "for the forseeable future", for X number of Gigabytes, or for X number of hours.
At offpeak, all bands deliver the same speed, or only slightly different speeds, depending on congestion.
At on-peak, lower bands scale more rapidly than upper bands.
If a customer wants their internet to go faster at a given time, they can simply go to the website and bump it up to the desired priority.
As more customers switch to higher pools, the higher pools will likely scale down to cope with demand, so as demand rises, customers escalate their pool level till the cost/speed balance is to their satisfaction.
=~ the idea is basically treat the internet as a bidding scenario, where people bid for bandwidth priority.
Granny will likely never leave the bottom priority pool, because she's fine with it being slow occasionally, and doesn't see the point in paying for more.
The idea seems "interesting" and "nice" to me, but the implementation mechanics of it might be dogs breakfast.