It needs to try to reconnect immediately.
Non-ghostsync updates do not have this problem because the updater runs in a loop and keeps trying until it succeeds in transmitting the oplog position update.
The current Ghostsync code gives up if there is a network failure and doesn't get resolved until the next write is applied. This is 'ok' if there are lots of writes, but pretty bad if there are no writes for a while (because write concern on the primary will not see it).
This logic will be better solved by