My guess is that the fundamental problem at play in this particular case is that since winewayland does not clear the win32 focus state when a surface loses the Wayland keyboard focus, the game thinks it's still focused and acts accordingly (instead of, e.g., having dropped the confinement and shown the cursor when focus was lost).
Oh, right. I quickly added `NtUserSetForegroundWindow(NtUserGetDesktopWindow());` to the end of `keyboard_handle_leave` and that behaves more like winex11/xwayland.