The block locator error message implies that the code believes the store is in an inconsistent state. This probably isn’t the case. I doubt it’s the cause of the shutdown deadlock.
While concurrency is broad in Libbitcoin, there are very few places where the code executing under a critical section can not be easily visually verified to terminate. It’s the other couple of cases that can cause deadlock given reentry into the critical section.