It also requires modifying, or at least amending consensus rules, something the majority of the Core team has been trying to keep to a minimum. I believe there is wisdom in that position.
Obviously increasing the block size requires a hard fork, but the fee pool part could be accomplished purely with a soft fork.
The coinbase of the transaction must pay BTC to OP_TRUE as its first output. Even if there is no size penalty, the output needs to exist but pay zero.
The second transaction must be the fee pool transaction.
The fee pool transaction must have two inputs; the coinbase OP_TRUE output from 100 blocks previously and the OP_TRUE output from the fee pool transaction in the previous block.
The transaction must have a single output that is 99% (or some other value) of the sum of the inputs paid to OP_TRUE.
By ignoring fees paid in the block, it protects against miners using alternative channels for fees.