Thanks but that runs forever for me too (twisted 2.0.0).
Does this stop for you?
#!/usr/bin/env python
from twisted.internet import reactor
from twisted.internet import threads
def aSillyBlockingMethod(x):
import time
time.sleep(2)
print x
d = threads.deferToThread(aSillyBlockingMethod, "2 seconds have passed")
d.addBoth(reactor.stop)