forgot the hashbang and the "Listen => 5" should be 10 to be able to service all the machines at once. Also: use strict and warnings...
Depending on the the connection time, you might want to add fallbacks, like a retry to create a socket, counting the seconds it took to get the anwser, and maybe substract half of this time from your result. Even use Time::HiRes; to get better data... But your thresholds seem to be very tolerant, so keeping it as integers is a quick duktape/chewingum solution while you roll out your ntp thing..
If you have systemd read this: systemd-timesyncd
Set up 1 server that gets it's time from the internet, and all others should get their time from that server