I think I reinitialize almost everything on startup and whenever I detect that the receiver has lost power. Basically double precision LLA, ENU velocity, etc. I played a bit with the various messages, and finally came up with a 'state machine' that seems to work reasonably well.

Sometimes it still fails to get satellite signal and position updates during startup when the receiver is trying to find which satellites are visible. Not entirely sure why as I couldn't test any of this on my laptop. The USB serial dongle support broke in recent Linux kernels, so it was a bit hard to debug all of this.

Whenever it seems to happen I first try to exit back to the hijack menu and go back to gpsapp, this triggers the initialization sequence and it typically recovers. If that fails I pull the sled and wait for a minute or so until I actually start gpsapp, by that time the receiver already has a lock.
_________________________
40GB - serial #40104051 gpsapp