Bitcoin is built on game theory. Somehow we seem to have forgotten that and are trying to fix our "block size issue" with magic numbers, projected percentage growth of bandwidth speeds, time limits, etc... There are instances where these types of solutions make sense, but this doesn't appear to be one of them. Lets return to game theory.
Proposal: Allow any miner to, up to, double the block size at any given time - but penalize them. Using the normal block reward, whatev
Her percentage increase the miner makes over the previous limit is taken from both the normal reward and fees. The left over is rewarded to the next miner that finds a block.
What this would look like: The miners start seeing what looks like natural network growth, and make the decision (or program an algorithm, the beauty is it leaves the "how" up to the miners) to increase the blocksize. They think that, in the long run, having larger blocks will increase their revenue and its worth taking the hit now for more fees later. They increase the size to 1.25 MB. As a result, they reward would be 18.75 (75%). The miner fees were .5BTC. The miner fees are also reduced to .375BTC.