problems combining millis() and GPS timekeeping

That's right. And when I comment out the query() call to get the GPS time/location, the millis() time difference between pulses is also close to 1000.

I'm using v 1.0 of the IDE (that's what it says in "About Arduino", anyway. And I'm using a Duemilanove board.