if any promise for a thread resolved, we assumed that the corresponding
write happened after all promises for that threads...clearly doesn't
need to be the case...
[Brian Norris:] This fixes some bugs where we don't see all the expected
behaviors: e.g., with