I'm not saying my idea is any good, but let me try to understand the race condition.
```
Someone changes Zone X
Zone X creates a Task X
Zone X and Task X are saved and committed
Builds begin in a database isolation level:
    Builds mark Task X as in-progress
Someone changes Zone X again, but this time, it does not create a new Task because it sees an unmarked Task X
    Builds save and commit Task X
    Zone X gets rebuilt with the first set of changes
    Task X gets deleted.
Zone X gets saved with the second set of changes, but the changes never get built
```
Is this the race condition you're thinking about? In this case, couldn't this race condition be avoided by waiting until after the Zone is committed before creating Tasks? Are Tasks created before the Zone is saved because we might encounter an error between saving the Zone and scheduling the Task?