Let the NTP firmware run over a few hours while having dinner and doing family stuff.
It looks like the local oscillator on my MCU is just a tad fast relative to GPS time (the stratum 1 NTP source on my lab LAN).
The polls are approximately 1024 seconds apart, and I'm running about 2.8 - 2.9 ms fast every time I re-sync the clock to NTP.
Let's call this 2.85 ms of error into 1024 seconds, which comes out to about 2.78 ppm.
Not bad considering i'm using a non-temperature-compensated quartz oscillator with a datasheet tolerance of +/- 25 ppm.