Yes I think I could backport to stable, so we would need to cherry pick:
https://github.com/discourse/discourse/commit/8e274f7296e4da68b591ce4d4299fece850e0492
https://github.com/discourse/discourse/commit/f6eff38c0e0656d5df8f991a296494afa55c0e57
https://github.com/discourse/discourse/commit/5f86564da1bc7c921bf1ed791b3ebc00b5917525
https://github.com/discourse/discourse/commit/22187508e3e8f1617e498754d35e36ffb5ad96c8
@sam are you ok with this ?