The test hangs because shutdown() causes _finishCallback to be scheduled on _exec->scheduleWork(), which enqueues a task into the ThreadPoolMock. But the mock's single worker thread is blocked in NetworkInterfaceMock::waitForWork() and nobody signals it to wake up. The task sits in the queue forever, so _finishCallback never runs and the failpoint is never hit.
The sibling test (InitialSyncerResetsOnCompletionCallbackFunctionPointerUponCompletion) handles this correctly by calling NetworkInterfaceMock::InNetworkGuard(getNet())->runReadyNetworkOperations() after shutdown() to wake the mock executor thread.
Fix: Add executor::NetworkInterfaceMock::InNetworkGuard(getNet())->runReadyNetworkOperations() between shutdown() and waitForTimesEntered() in the test.