Change some of the asynchronous semantics.

Slower but with 100% decreased probability of race conditions.