Где бы почитать про эту вещь в хорошем теоретическом аспекте, где были бы освещены паттерны, примеры, проблемы, хитрости и тому подобное?
Желательно в применении к Python, но это не столь важно, куда важнее получить базис.
А то пытаюсь реализовать некоторые вещи, а понимаю, что не знаю основ проектирования многопоточных приложений и создается ощущение, что клею обои через замочную скважину.
Я бы советовал книгу с названием «Программирование linux профессиональный подход». Эта книга очень четко описывает подходы многопоточного программирования, правда на C++ но прочитая ее вы поймете все об этом. По моему ее можно скачать даже где то в электронном виде.
Общие принципы и паттерны одни и те же в разных языках.
По сути Вам придется использовать локи, или семафоры, или очереди для обработки, в зависимости от проекта.