"Part of the problem is probably that the filesystem (ext3, in particular) will end up blocking processes which are waiting on buffers until a big journal commit frees some buffers. That can cause writes to a slow device to stall unrelated processes."
Unrelated = processes trying to read unrelated data from FS?
"It seems that there is more going on, though,"
Things like apps doing sync, or huge writes filling page cache and resulting low memory condition causing other processes data to be swapped out (and immediately back in, if they are active processes)?