Umm yeah, you get a performance loss of 1ms when you use Thread.sleep(1) but that's the whole point of throttling, isn't it

Of course, if you're not careful with the amount of sleeping, you might miss frames when you make use of vsync, but that's not Thread.sleep(1)'s fault.
FWIW, I'm using the same code for throttling as princec, no problems at all: Steady framerates, no performance loss.
I don't think I use vsync. When I use nanosleep instead of sleep even for a very short time, the performance falls hugely. Maybe I don't express correctly what I mean. It is not a bug but I'm not sure it is good to use it here.
Oh, and there's really no need for e.printStackTrace() (just commenting on it since you posted that in bold as if it were important).
I find it cleaner. If there is something wrong, you don't hide it silently.