What you're missing is that `stop` simply schedules stopping and returns immediately -- it doesn't wait for the looping call to actually stop or return a deferred that fires when the looping call does stop. It's a nasty rough edge in the Twisted LoopingCall API. :/