My suggestion, to get this discussion started, is a dynamic block size limit that is based on the following two parameters:
1) The median size of the a set of the previous blocks. A good example is the model of the CryptoNote coins, for example Monero (XMR).
https://cryptonote.org/inside.php.
2) We could also add the requirement that for an increase in the block size limit the difficulty must be rising and for a decrease the difficulty must be falling.