Nope. I don't think it will be possible to get a stable timestep (lets not call it framerate anymore) on ANY system, just on some more systems. I didn't want to emphasis the use of Thread.yield(), I just wanted to point out, that you were exeggarating in your statement.
Btw. a tight loop with Thread.sleep(1) along with the deamon-trick seems to be the right tradeoff between CPU usage and accuracy.
Regarding the frame-locking - there is also a lot of threads about fixed vs. variable timestep game loops and the consensus seems to be: use the one you think fits best in your targetted environment - if framelocking appears either switch the method or optimize performance