I agree both with the parent's GENERAL point and with the other replies that say it's too confusing. That is, for actual, and probably rural users, your proposed system is way too complex. In addition, the POST itself is complex.
OP's goal seems to clearly be to be nice about this. As the parent suggests, the key to trying to be nice about this without paying for a bigger pipe is to properly encourage users to use off-peak downloads. You need a simple, fair system, that just works with users who aren't thinking about it. And I agree, filtering by traffic type is lame.
So from a bulk-downloader point of view you want a system that limits everyone's bandwidth during peak times only - and you want to publish when the offpeak times are so that aggressive downloaders can choose to download stuff during those times if they so desire.
The peak limits should be stiff enough that you aren't quite pegged in either upload or download (separate limits) so everybody gets a relatively low latency connection. Feel free to add more than one tier of "peak" if you need to, especially internally. Or if you're really cool, it will automatically detect when you're about to be at 100% and throttle based on that... so you're not actually 'setting' peak times, you're just publishing guidance on what times tend to be peak.
This kind of traffic shaping - limiting everyone's bandwidth fairly when there isn't enough - is basically good for your users as a whole.
Another key thing to do is HOW this bandwidth is limited. What you want to do is not, really: no more than 200 kb/s. What you really want is more like no more than 12000 kb/min, and no more than 2000 kb/s. There are more complex algorithms for this... but the important thing is to average their bandwidth over a modest time period. Somewhere between 5 seconds and a couple minutes is probably right. Because most typical web users who AREN'T bulk downloading need a lot of bandwidth for very short periods, and to keep the interactive web experience fast you need to give it to them.
The 2.6 kernel does this pretty easily; 2.4 might but I can't remember. Of course, I don't have a clue whether you're using a linux router. TrafficControl or tc, I think the module was called. But I haven't had to adjust mine in a good long time.