Might be worth a comment somewhere explaining why we can't just delete the entry right away, but rather need it to persist briefly while flagged as 'inactive.'  I guess it's because without that you could still get race conditions around the validation checks that watch() does? (since they're outside of the queued part)  Or am I totally off base? :-)