".01 BTC" is not a reasonable fee, period. Here's why.
That is how free markets work. If I want to change 0.01 BTC I can. Obviously I lose your business. Someone else might charge 0.005, someone else 0.001, someone else might accept free tx.
There is no scenario where every miner demands the exact same fee amount.
Hypothetically someday lets say:
10% of miners require a fee of at least 0.01 BTC
25% of miners require a fee of at least 0.005 BTC
25% of miners require a fee of at least 0.0001 BTC
20% of miners require a fee of at least a single satoshi.
20% of miners require no fee.
Obviously in reality this sliding scale would have many more data points but using this as an example.If you included no fee your tx would still be processed but only 20% of the network would be working on it so confirmation time is 50 min.
If you included a single satoshi as a fee then 40% of the network would be working on it so your confirmation time drops to only 25 min.
If you included a fee of 0.0001 (1/20th of a cent at todays value) you buy 65% of the network and avg confirmation of 15 min.
etc.
If miners broadcasted fee schedules and hashing power via a p2p protocol clients could advise users on fees and projected confirmation times.
Another option would be to include a "charity window". Miner could specify to include x or x% of outstanding tx which are below the fee limit. "low fee" tx would be processed first come first serve after priority tx so confirmation times would be longer but they would be processed.
I would say a "Fair" rate is more like 0.05%, maybe 0.025%, with a spam fee that increases exponentially per digit below the spam threshold, say 20% to send 0.001BTC, 50% for 0.0001BTC, 100% for 0.00001BTC, and doubling forward. Of course, since this was very poorly thought out before client was released, figuring out how to reach any kind of consensus between miners and clients is not going to be easy.
% based fees are neither desirable nor possible in the Bitcoin network. What you or I consider fair is irrelevant. Most miners will likely accept 0 BTC tx, each if free to set their own price. Users are free to set what they are willing to pay. The market (not you or me) will determine what is "fair".
Fair price in a free market is what someone is willing to pay and someone is willing to sell. What is being bought and sold is inclusion of a tx in the next block.
unless all miners and all clients agree to what a reasonable fee is, there's going to be serious conflicts at some point. Either significant numbers of empty blocks, no way for a client to determine what a "good" fee is
That is simply impossible. 100% consensus on "fair" never happens. Only central control can implement price controls. IF you feel that is the only possible "fix" then you should uninstall Bitcoin now because it will NEVER happen in a decentralized network.
and if enough people get tired of that behavior, you might end up on your very own blockchain fork one day. Of course, for the protocol to change at all, and for any reason would generally end up producing large forks, which is a major downside of the BTC system, and of the fact that it's experimental.
This requires no protocol change. If hypothetically miners setting their own tx fees was outlawed by some future protocol change well I could simply stop (and I likely would stop mining too).