server not being processed
While introducing yet another test to catch frame processing errors, in
this case with the SETTINGS_TIMEOUT error, another loop was found. It
was caused by two reasons:
* connection was signaling it was "closing" on such an error, which is
not really true (server already closed the stream, so no need to
close it again); it should be marked as closed instead.
* write buffer was still full (with the handshake in this case), so the
connection was still trying to write;
While adding the test, the code to recover from an exhausted HTTP/1.1
connection proved not to be reliable, as it wasn't taking inflight
requests nor update-once keep-alive max requests counters into
account.
This has been fixed by implementing our own test dummy using
webrick.