It stops when current == stop, so range(1, 3, ...) gives [1, 2] — only 2 servers. The old list.range was inclusive. I need to use int.range(1, num_servers + 1, ...).
Also, with only 2 servers, each gets 1 peer registered (correct), but 5 clients with server_index = (i-1) % 2 — client-3 would try index 2 which is out of range. Let me fix the range endpoints.