Kind of OT for this post but I think it would be good if someone could build the what would have to be a lot of bloat and complexity into core and the protocol that would allow a 2nd mempool so to speak that only has 0 fee tx in it.
It doesn't seem to need that much complexity and definitely not a secondary mempool. It only needs a new condition to reduce the minimum fee from x to 0 either manually for all conditions or automatically when the mempool size drops below a certain size.