Sharing (externing) mempool and queue across different threads in different files (translational units) - failing free

Update - I have solved this locally. The solution above does perform correctly, and the issue was caused by an unrelated factor.

Happy to discuss sharing these resources as a broader topic (to extern, or not to extern) if anyone is interested!