Should wait for vblank still be on?
I doubt it'll be necessary. Vblank is usually turned on as a last attempt to get fps up. With todays hardware it should not be a real problem to get your game running at a good fps. Unless you're going to make extensive use of Alpha blending.

In any case, I would leave the choice to the end user by presenting it in some kind of option panel.

Unless I multiplied my movements by HUNDREDS ie. x:=x+2 becomes x:=x+(200*elapsed)
It is possible that your elapsed time value is something like 0.05.
2*0.05 = is way too small to make your sprite move.

Movement is as jerky as before (if not more!)
It could be caused by a number of things, I can't tell without seeing the code.

I had to kill the dxtimer, or application.idle didn't occur...
Because application.OnIdle takes care of the gameloop, there's no reason to have the dxtimer component on your form as well.

I set tickrate to all sorts of values and no discernable difference
I'm not really sure how dxtimer's tickrate works. I've seen some code here on the forum that uses tickrate, but never tried it myself. In any case with the new timer there's no need to use tickrate.