An off-thread sink for async network event tasks. All such events are forwarded to
a target thread, where they are invoked on the provided context object.
A gating mechanism that runs before invoking the task on the target thread.
If the should_invoke method returns false, the task is discarded without
being invoked.