Socat is terrible.
When used to establish a persistent connection to a remote listening (TCP) port, it has NO WAY to detect that the remote end has dropped the connect, and automatically reconnect. It just does not work.
Yes, I know all about all the keep-alive and retry options in the manual. Try it yourself.
It's one of those horrible tools that you can get up and running quickly, but can never make work reliably.