The shsync daemon is fine, even with it running you will still filter out most of the redundant writes (i.e., when you are writing a bunch of files, the inode table gets written / rewritten multiple times. With async io, only the last update to a particular sector will actually be written out to the device). Also, since sync runs in the background, you are still getting buffered writes even when it is kicked off.
As for invalidating the buffer on suspend... The kernel normally will mark all cached data as no longer valid when you suspend, in case someone swaps out a storage device while the system is suspended. If it didn\'t invalidate the buffers, then you would get filesystem corruption if you suspended, swaped your CF /SD card, then resumed and wrote out something. The error message itself (busy buffer) just means that a program was reading from the device at the time the kernel tried to invalidate the buffers. A search on linux-kernel mailing list shows that this message is usually harmless.