Este é o padrão, se eu entendi sua pergunta. O primeiro socket é aberto e bloqueia em listen. Somente quando uma conexão é feita, a conexão com o segundo nome será tentada. Você pode testar isso. Por exemplo. escute na porta 60127 e conecte à porta 60128 em um shell:
$ socat tcp-l:60127,reuseaddr tcp:localhost:60128
Ele irá bloquear a espera. Em outro shell, tente se conectar:
$ telnet localhost 60127
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
Connection closed by foreign host.
Ele falha e o comando original também falha:
socat[30293] E connect(3, AF=2 127.0.0.1:60128, 16): Connection refused
Se, no entanto, você repetir a primeira socat, adicione outra na porta 60128 com:
$ socat tcp-l:60128,reuseaddr -
então o telnet funcionará. Então, claramente a primeira socat não tenta a segunda conexão até que seja necessária.