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, whatever 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.
If blocks stay smaller for an extended period of time, it goes back down to the previous limit/ x amount decrease/% decrease (up for debate)
Why would this work?: Miners only have incentive to do raise the limit when they feel there is organic growth in the network. Spam attacks, block bloat etc would have to be dealt with as it is currently. There is no incentive to raise the size for spam because it will subside and the penalty will have been for nothing when the attack ends and block size goes back down.
I believe it would have the nice side effect of forcing miners to hold the whole block chain. I believe SPV does not allow you to see all the transactions in a block and be able to calculate if you should be adding more to your reward transaction if the last miner made the blocks bigger. Because of this, the miners would also have an eye on blockchain size and wont want it getting huge too fast (outsize of Moore's law of Nielsen's Law). Adding to the gamification.
This system would encourage block size growth due to organic growth and the penalty would encourage it to be slow as to still keep reward high and preserve ROE.
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. Everyone who receives that block can easily calculate 1) if the previous miner gave themselves the proper reward 2) what the next reward should be if they win it. Miners now start building blocks with a 31.25 reward transaction and miner fee + .125.