If you consider higher block propagation time for "spammy" blocks as a desirable side effect, how about adding an EXPLICIT PROPAGATION DELAY for "spammy" blocks? Like waiting for few seconds before sending it out.
("spammy" block: a block that contains txs that my node would filter out from its mempool, that I consider "spam" by my standards)
(An delay too long, or refusing to forward is a behavior that can be detected by other nodes and retaliated against.)