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.