Using a Protocol Plugin along with a PluginVC (HttpConnect) and HTTP CONNECT command to create tunnel. When the server drops the connection, the protocol plugin will not be notified until the connection times out.
HttpSM ends up calling PluginVC::do_io_shutdown() which sets the appropriate flags but takes no action. I suspect this would affect real socket VCs as well, but in that case the shutdown() on the socket write side would cause the client to react and close its own side as well.
The proposed fix solves my specific problem but may not address all related issues (with PluginVCs or other types of VCs as well).