fix(chainselection): skip peers whose tip is far behind best known
During catch-up, the chain selector could switch to a peer whose tip was thousands of blocks behind the best known peer. This caused pipeline stalls and dropped rollbacks that cost minutes of sync time per cycle. Add a check in isPeerSelectableLocked that skips peers whose tip is more than K (securityParam) blocks behind the highest known peer tip. Peers within K blocks may be on a legitimate fork and are still considered. This matches the Ouroboros Praos guarantee that honest peers are always within K blocks of the true chain tip. Signed-off-by: wcatz <[email protected]> Signed-off-by: wcatz <[email protected]>