This looks like a pretty good use-case for [`threading.Event`](http://docs.python.org/2/library/threading.html#event-objects): then there would be no need for a lock, because those events are thread-safe anyway.  It would also eliminate the need for the `lambda: self._abort_now` callable: you'd just pass the `Event` object directly.