Backports from our wlroots 0.19.x branch
It's easier to apply things upfront so the actual change to newer wlroots gets smaller and some cleanups are useful on main too.
The signal disconnects which assert in 0.19.x that we were missing all look harmless.
Please see individual commits for details.
@arun-mani-j please have a look. Like !625 (merged) this is 0.46 material.