The first thing that can go wrong is failing DNS lookups. Those may time out and have to be retried against a different server, but the timeouts tend to be a lot shorter than 60 seconds, so I don' think that is a likely explanation.
Next you need to establish a TCP connection to the server. The server may have multiple IP addresses, so the client will need to decide on some order in which to try them. If addresses are tried sequentially, it is not unlikely to see a 60 second timeout before the client gives up on one IP and moves on to the next.
If the network connection between the client and the first IP address is down, you may consistently see timeouts followed by success once the client switches to the next IP address. This behavior has been seen a lot in setups where client and server have both IPv4 and IPv6 support, but somebody wasn't really paying attention to the IPv6 connectivity and did not repair the setup once the IPv6 connectivity failed for some reason.
The next thing that can go wrong is usually MTU problems. Those tend to cause the connection to stall and eventually time out, but in those cases you don't just continue to the next IP address.
Another thing that could happen is that the server might throttle you, if you are making too many requests.
strace -f
would show you the syscall trace and give you a better idea of where the process is hanging.