We had been locking the observer vector anyway. This version just makes sure that we are not doing the notification while we are holding a lock. If any of the observers were to add new observers to this task when notified, we'd have a deadlock.
This is inspired by http://stackoverflow.com/a/14382560/522251.