В продолжении предыдущей темы. Локализовал место зависания, оказалось, что все это происходит из за модуля sip (по логике, вот этого). Пример кода, который вызывает зависание:
dialog = get_dialog_class() # Просто вернет объект описывающий форму
...
# Создание объекта, работа с ним, успешное удаление (точнее вызов destroy'a)
...
sip.delete(dialog) # Вот здесь и происходит зависание.
del dialog # <- это уже не выполняется