For years I’ve had set cursor to watch show up inconsistently — no obvious pattern. Turned out to be timing: the cursor needs an actual event-loop tick before it paints. wait 0 seconds with messages didn’t fix it, even wait 1 tick wasn’t enough — but wait 1 second with messages right after made it reliable every time. Native ARM on an M5 MacBook, for what it’s worth.
You can also lock cursor after setting the cursor and then unlock cursor when the watch is no longer needed