Nope, it'll just lock up a thread on the gateway; Perspective can have multiple worker threads, and the more you lock up with sleeps, the more that need to be spawned, the more resources wasted and the less scaleable your solution will be.
Sleeps lock up a Vision client because all scripts run in the same event dispatch thread which handles every event that occurs on the client. So if you have a sleep running, you're no longer able to push buttons or get tag updates, as the edt is busy sleeping
Be careful though, this will have an unexpected behaviour.
You're binding this on the selected props AND you're also triggering the script.
When you click on your checkbox, a write will first occur through the binding.
THEN another write may happen because you've also configured a write on your "onClick" event.
So potentially if both writes go through, there may be a race condition where the value doesn't change at all because you write to it twice, and one write is a negation.
If you're planning on doing this, you're better off doing this on a regular button rather than a checkbox.
If you're binding a prop, remove the onClick or actionPerformed event. The original solution was for a Button which does not have a boolean prop to begin with.