The good news is I found an easy and logical way to work around the PipeWire explicit sync bug I was struggling with last night!
The bad news is KWin and OBS are buggy in subtle and different other ways, and fixing either would break things even more unless both are fixed... not to mention I have no idea what other compositors and apps do...
Oh well, at least spout2pw/libfunnel and obs-pwvideo can do things in a reasonable/compatible way for now... and I guess making things work The Right Way For Everyone will have to wait for PipeWire 1.6 which actually fixes the underlying breakage.