During Shutdown, we stop the scheduler before waiting on the load-block thread. But the load-block thread can call LimitValidationInterfaceQueue via ActivateBestChain. LimitValidationInterfaceQueue then schedules a dummy call and waits for it. But since the scheduler has stopped, it never gets there, and blocks forever. Shutdown remains joined to the thread, and also never exits.
Can we just wait for the load-block thread before killing the scheduler?