Just like the cleaning lady: I don't do windows.
So my knowledge is of a various ntp daemons on unix (-like) machines over the years.
ntpd is not supposed as a general method to do a step, it's supposed to speed up and slow down the system clock. If it needs to do a step your machine either started out way off, or has a borked clock (or is just crappy hardware - they do exist too).
This means that under ordinary conditions, ntpd will make sure the timescale is effectively continuous and without discontinuities (it might be a bit fast or a bit slow though). It's only when the difference in system time and UTC is far too large that a "step" is considered and those might indeed cause time to go backwards, but typically they can get logged if they happen.
Steps in system time can cause various other issues too: e.g. make can get confused.
Modern ntpd has options to configure the threshold for when a step is performed.
Solutions:
You might figure out where your machines log that they perform an NTP step, and react to that (not going to be easy to do this cross platform).
Use some other measurement of time than system time.
You best bet if you want to avoid it all: query a public NTP server yourself instead of relying on the system time if it's that important.
As you state you cannot do that: query the time of a server with a reliable clock over http(s). It's not going to be easy to get the accuracy of NTP, but if you're measuring orders of magnitude of 30 secs, the variance introduced by using http(s) might be minimal.
If you really do need the accuracy: tunnel NTP over http(s) to a webserver and let NTP deal with the transmission delay. A 'bit' more work, but if you're desperate ...
If you run this in your own corporate environment, you can setup your own ntp servers pretty easy. Also you can buy off the shelf timeservers (just to get you started: google "Meinberg", but there are for sure others as well) and you can even broadcast the time of the local network with ntp just as well.
Now that said: I've a bit of a weird feeling about the need to measure elapsed time in an application.
Background info:
http://doc.ntp.org/current-stable/ntpd.html