When a 1-byte hop prefix matches multiple nodes, pick the one
geographically closest to the center of other known hops in the
path — same logic as /api/resolve-hops but client-side.
Previously just took the first match, which could be a node in
Chicago matching a local Bay Area hop prefix.