gaining accurate time on time sensitive measurements.

I find your description of your time requirements rather confusing.

You say you need to take measurements 20 times per second - or one every 50millisecs. What is an acceptable range of error - perhaps 50 +/- 2msecs. (By the way there is no such thing as no error).

Then you say "The most important part, is that I get the multiple samples every second, on the second. " Again the question arises what error is acceptable for "on the second".

And there is an associated question - what happens if the specification for "on the second" conflicts with the sample interval?

There should be no trouble extracting the time from the GPS message (assuming that 194509.000 is some sort of time value).

I would be inclined to use millis() as your main timing device and periodically (perhaps once every 5 or 10 minutes) add or subtract a small interval (a bit like the leap-year correction to the calendar) to keep it in sync with the GPS time.

...R