That would be better if the output of ntpstat formed (part of) the body of the email message. Nice start though.
*IF* ntpstat does return 1 when ntpd is not syncing to external sources when the drift is >500 ppm. Looking at the logs when my system was playing up it looks like ntpd was "synchronized" but to the wayward system clock.
4 Aug 14:49:02 ntpd[32313]: kernel time sync status 0040
4 Aug 14:49:03 ntpd[32313]: frequency initialized 10.000 PPM from /etc/ntp/drift
4 Aug 14:52:20 ntpd[32313]: synchronized to LOCAL(0), stratum 10
4 Aug 14:52:20 ntpd[32313]: kernel time sync enabled 0001
4 Aug 21:46:59 ntpd[32313]: ntpd exiting on signal 15
5 Aug 00:29:27 ntpdate[3257]: step time server 82.113.154.206 offset 96.09872
5 Aug 00:29:28 ntpd[3184]: logging to file /dev/stdout
5 Aug 00:29:29 ntpd[3184]: precision = 1.000 usec
5 Aug 00:29:29 ntpd[3184]: ntp_io: estimated max descriptors: 1024, initial socket boundary: 16
5 Aug 00:29:29 ntpd[3184]: Listening on interface wildcard, 0.0.0.0#123 Disabled
5 Aug 00:29:29 ntpd[3184]: Listening on interface lo, 127.0.0.1#123 Enabled
5 Aug 00:29:29 ntpd[3184]: Listening on interface eth0, 192.168.1.1#123 Enabled
5 Aug 00:29:29 ntpd[3184]: Listening on interface eth1, 172.16.21.2#123 Enabled
5 Aug 00:29:29 ntpd[3184]: kernel time sync status 0040
5 Aug 00:29:29 ntpd[3184]: frequency initialized 10.000 PPM from /etc/ntp/dri
5 Aug 00:32:48 ntpd[3184]: synchronized to LOCAL(0), stratum 10
5 Aug 00:32:48 ntpd[3184]: kernel time sync enabled 0001
5 Aug 00:33:53 ntpd[3184]: synchronized to 178.79.160.57, stratum 2
5 Aug 00:41:20 ntpd[3184]: synchronized to 130.159.196.118, stratum 2
At 14:52:20 it reports the same as it does when it will sync to an external source, there would then be an entry for each occasion it switches reference. But as the drift was >500 ppm it stayed with LOCAL.
At 21:46.59 I stopped ntpd and let the system free run. The system clock still lost time but the hardware one didn't and the two drifted apart. When ntpd was running both the system and hardware clcoks drifted together.
00:29:27 is the machine coming back up after a reboot. Note the identical series of log entries from "... status 0040". The machine has been happy since.
There appears to be a very rare problem during boot related to setting up the system clock. Just very occasionally it appears to get the frequency wrong and the drift is >500 ppm. which ntpd can't handle. Some one with a spare server needs to figure out how to consistently get a >500 ppm drift on the system clock, have ntpd not syncing to remote servers, then see what ntpstat reports. I'm busy for the next week, yes really... B-)