I was unable to allow the dog to sleep. Had to find the bug or I was not going to be able to sleep.
After a few more occurances, I had enough data to give me reason to suspect I was going out of range on the GPS receiver buffer. So I instrumented that section of code and let it run. An hour later, the code triggered and I had my answer. The GPS decided to send me a message I had not registered. It was larger than the buffer size I had allocated based on the messages I had registered for. To make matters worst, I had an error in the code that checked that the message would fit in the buffer. Made the correction and let it run all night. No errors!
Now its time to start logging the GPS data to the SD card.