細かい動作原理的な事は他の人に任せるとして、僕も使い分けとしては、VSYNCはタイミングをとるため=基本メインループなどの間に入れるもの、WAITはその場でその時間動作を止めたい時に使う、みたいな感じでいいと思いますね。 VSYNCはタイミングを取る関係上必ずウエイトが入るとは限らないので、ボタン入力更新のためなどで必ずウエイトが入ってくれた方が都合がいい場合はループの中でもWAITを使うというケースもあると思います。