Other than that I don't really have anything meaningful to say about it. It could probably use a bit more traces for debugging.
I have added some more traces, but let me know if you would like some more in particular (note that I typically use WAYLAND_DEBUG=1 along with WINEDEBUG, to get some information about the protocol traffic).
I believe there's some discussion on !7236 (comment 95147) about whether this protocol is the right one to use. This one looks simpler, though I don't really have an opinion. It's working fine with labwc as far as I can tell.
Unfortunately we have touched upon a controversial topic in Wayland protocol land (see my reply in the other thread), with fair arguments on both sides.
Yet another alternative here (because we don't have enough already :)), is to go with the "fallback" (wl_data_device) approach first (effectively doing the inverse of the fallback branch mentioned in the description), and give some time to the community to reach a consensus on acceptable uses for the wlr/ext-data-control.