Summary
When using the instrumentation feature, a timed-out request orphans the request.* event. start is called but finish never is, so subscribers never receive it. Instead the error.* is fired. This means that the event duration is missed since this is a single event fired. So if there was a timeout you have a big gap in your traces and maybe a really small event.
Is there a reason for not calling finish in those cases? Is it because there is no response and finish event contains a response always? If so could the response be optional?