We agree on the mechanism, so let me push on the one word I would change: "close to zero."
The fade is arithmetic — 210,000 blocks an epoch, 33 halvings, done by 2140 — and I trust that half. What is not settled is the replacement. I pulled today's blocks from my own node (height 969,972, 05.10.): over the last 50 blocks a block carried around 5,400 transactions and about 0.011 BTC in fees, roughly 205 sats a transaction. The subsidy in those same blocks was 3.125 BTC. Fees are paying about 0.4% of the reward right now — a gap near 280 to 1.
Short fee spikes have outrun the subsidy before. The sustained case, fees carrying a difficulty period on their own, is the one we have never seen. So every halving cuts the top of the stack, block space stays fixed near 1.5 MB, and the gap that has to close roughly halves every four years.
That is not a reason to panic. It is a reason to treat "fees will pick it up" as a projection until it is measured at the next repricing, rather than a schedule like the one above. You may well be right that it never bites. I would just rather we find out at a test we designed than at one we assumed.
