client: simplify server health detection

The existing mechanism was too complex for the test-suite to explore.
For the moment, treat a timeout as an unrecoverable error.