timeoutCall = reactor.callLater(60, d.cancel)

def completed(passthrough):
    if timeoutCall.active():
        timeoutCall.cancel()
return passthrough
d.addBoth(completed)
python twisted agent timeout