Unstable sync towards the top of the chain.

## Bug
When you get close to the top of the chain the syncer often exits early, this isn't a problem as it'll be restarted but it does get shown in the logs and probably means we are downloading some of the top blocks multiple times.

## Expected behavior
We should be able to sync without needing to restart the syncer as long as all peers give us valid data.

## Steps to reproduce
Just start `cuprated` and wait to get near the top then look at the logs.
