Fixed in [80ca9fe746] and [f644fb5a9f].

When implementing multi-address [socket -async], I thought it would only be used together with fileevent, and [fconfigure -error] would not be called before the readable event has fired. But now I see that -async without fileevent even makes sense, e.g. to trace the addresses that were tried and why each of them failed, so the error caching (reading SO_ERROR is destructive) needs to go both ways, from the event handler hidden behind [socket -async] to [fconfigure -error] and vice versa.