Just wanted to give a quick update on this. I was able to verify the behavior that you’ve found but I haven’t found the root cause yet. I am currently trying to figure out what change may have caused this and will update again when I find the root cause.
Thanks for digging in to all this! The workaround didn’t quite work for my use case, since I need pointerout to fire when mousing from the canvas to popup HTML UI that overlays it (inside its rectangle). But it provided the perfect inspiration to use document.elementFromPoint for a similar workaround by re-validating the hit test.