In particular on linux it takes a long time to find out it has to reconnect after sleep. On Windows it's faster but still not immediate.
ntpd on Ubuntu for example seems to detect interface changes and restart itself. Investigate how it's done this is done by an ifup/ifdown script, not by ntpd.