I guess the gevent loop is not running properly, you should try the gevent reactor for Twisted:
http://wiki.inportb.com/wiki/Projects:Python:Geventreactor
It is as easy as inserting those 2 lines before you import twisted:
import geventreactor
geventreactor.install()