A few more nitpicks. Otherwise I think all my previous concerns are resolved.
I don't know anything about wayland, so I can't say much about the protocol implementation.
The output overlap resolution seems to me a little bit complicated, and unnecessary this early, as I don't think overlapping outputs are a common situation, but I don't really mind.