Just like we have a DAA to maintain the block time at 10 min, we could have a dynamic block size limit algorithm to maintain the transaction fee at 1%. So basically..
If the avg transaction fee is greater than 1% then the block size limit increases;
If the avg transaction fee is lower than 1% then the block size limit decreases;
The idea of dynamic block size already proposer and rejected few years ago. But if community willing to accept dynamic block size (with specific upper/lower limit), i prefer something like BIP 104 or 106 which configure block size limit based on past block size.