Whoops; I was mistaken last time.

Synchronous mode makes each file update immediately visible.

But I changed the ftruncate test to sync after every truncate... didn't seem to fix it, though.
Fixing a typo.
Fixed truncate! We weren't keeping buffer 1-1 with the file contents; we didn't make large buffers smaller, for example.
Fixing a race in append file. Whoops.

We caused this when we changed synchronous calls to async calls.