Instances of ClientOutOfLineExecutor, which are decorations on Client, must be shutdown before their destructor is invoked (see here). This requirement is satisfied through destructor actions, however, it may terminate the process if an exception is thrown before the newly constructed client is moved to a UniqueClient (see here).
We should change ClientOutOfLineExecutor to skip the invariant before the UniqueClient is constructed. We may do so by skipping the invariant before the first task is scheduled on the executor.
Acceptance criteria: ClientOutOfLineExecutor must only require shutdown before destruction if the new Client is successfully constructed (i.e., and instance of UniqueClient is returned from ServiceContext::makeClient).