Após algum tempo pesquisando as possíveis soluções, encontrei essa resposta simples, que aguarda o GTK até que ele conclua todas as suas tarefas. Você pode achar que isso torna o aplicativo mais lento, mas a diferença é quase inexistente.
Esta solução alternativa pode ser usada com qualquer versão do Python. Ele funciona com o PyGTK e com o GTK + 3 (com o GTK + 3, altere gtk
por Gtk
...: P)
while gtk.events_pending():
gtk.main_iteration()
Basta adicionar isso antes do código que causa o problema ... e pronto! :)