У вас цикл while, в котором в какой-то момент открывается Question. А в ней создаётся новый root. Как только if matched срабатывает сбросьте его на matched = False. Переходите на qt, не теряйте времени на tk, вы оцените
Asyncio. Он очень прост в отличии от трединга и похожих и сам все сделает в отличии от celery. Для того чтобы его понять за 10 минут советую aiohttp сервер создать