After 70 seconds you start the server, then
I expect a connection. Anything else makes no sense.
That isn't how TCP connections work, or even any connections for that matter. A connection attempt either succeeds or fails. The connection timeout is how long to wait for it to succeed. As soon as we know it won't succeed (because the server isn't there) then the call can fail.
What you're talking about is quite a bit different. You're talking about a retry policy. This is often done with HTTP clients. WIth a retry policy you specify that if the connection attempt fails, for a few pre-defined reasons (server not available, etc), then try again later. For a retry policy to work you have to specify how long to wait between requests, generally exponential, otherwise you can swamp your network with requests for a case where it'll never work.
There is no support for retry policies in the framework at all. It can be done using third party NuGet packages if you need it, at least for HTTP clients. Otherwise you're on your own. Implementing a simplistic retry policy isn't hard.
Attempt to connect to server
While Failed for a recoverable reason
Wait for some reasonable amount of time
Try to connect again
But that is not something you'd want in production. In a production environment you'd want to probably do exponential backoff on the connection. For example, checking every second is wasteful if the server isn't going to be online so start at 1 second, then 5, etc because the longer the connection is down the more likely it is to remain down.
You'll also want to only retry if the error is recoverable. A server not found, server rejected, etc are recoverable. A bad IP address or access denied are generally fatal.