Before getting into fixing this, I'm going to stress something: wait is already frame rate independent, although weird things may happen if you wait really small amounts of time, such as 1/60 of a second(i.e., less than the length of one frame).
That being said, the method you've chosen isn't the best way to go about this, and seems overly complicated for what it is. I've modified your example to demonstrate the behavior I believe you're wanting.
I've replaced all of the complicated timing with some basic math. If you're not familiar with trigonometry -- cos and sin are used here -- I'd highly recommend doing a bit of research, as even the most basic trig is an indispensable tool for game creation.
Let me know if you want a more detailed explanation of what's going on.