Prevent document update conflict from starting multiple surveys simultaneously

http://manage.dimagi.com/default.asp?137919

The only change here was the use of CriticalSection(), the rest of the changes are just indenting / formatting.
What happens to the other recipients if this fails? Would it make sense to
```py
try:
    with CriticalSection ...
        ...
except TimeoutError: # not sure if this is the correct exception, but you get the point
    log.exception(...)
    continue
```

Also, this is a huge method. Would it make sense to refactor this critical section into a separate method?

Finally, would it be possible to write tests for this?