So, I think there is a huge misconception of so called 'greedy' miners. The issue of higher fees isn't really the miners fault. It is the rules of the protocol that is. For example:
In the protocol (disregarding the security aspect for a moment) It doesn't matter if there is 1 miner mining or 1 billion miners mining. The maximum number of transactions allowed in a block is exactly the same and the amount of time for that block to be mined will also be the same.
I think maybe a solution to high fees would be to make a rule that would require a First In First Out system with a guaranteed minimum fee. Now this wouldn't decrease transactions or transaction time, but would remove user incentives to offer higher fees because they would have to wait their turn to be confirmed, creating a more level playing ground. This would also give businesses some reassurance that they will get paid once the transaction has been broadcasted in a somewhat predictable matter of time.
Just a thought.
What do you mean by "first in first out"?
Transaction relay times do not matter because nodes receive different transactions at different times.
That's why the blockchain is needed and why blocks are timestamped.