Using a separate thread to backout from objects in active event.  This
is because: 1) does not violate any correctness guarantees to backout
individually and 2) prevents deadlock.  Can get a case where locked
obj holds lock on obj and then tries to insert iteslf into touched
objs, which acquires _lock on this event.  If, while we are trying to
do this, we call backout (eg., if a backout exception is raised) we
will hold a lock on this event, and then try to lock the object during
backout.  These two together can cause deadlock.  Using a separate
thread instead.