I have an idea... but it might be stupid. Find a list of those Nuclear Clocks... online, and figure out how to get the time from those... You the difference between the user's system and the nuclear clock as a "GAUGE" and make all the clients use the same nuclear clock.
Each User would have their own time "offset"... and this can occassionally be "updated" by another call to the nuclear clock thing... say, every 15 minutes or even more.. because I don't think clocks drift that much... not enough for a game to get totally screwed.
Just rememebr you might want to implement such a device to work on more than one kind of nuclear clock server as one might go down etc.. and the user's shouldn't be aware the "Nuclear Clock of Choice" changed - it should be transparent...
If all the nuclear clock servers fail.. then resort to your home-rolled time syncer.
Just ideas - not necessarily the best idea. Frankly, your ping method is reasonable, and frankly, just doing a resync once in awhile might be more than enough and more reliable! (as you don't have to worry about the nuclear clock thing at all.)