I am using FatFS with the Adesto serial FLASH (SPI) devices.
With a 21MHz SPI I get > 1Mbyte/sec read, and the write is limited by the 15ms "erase before write" 512 byte sector write speed, so about 30kbytes/sec write.
Windows should not be thrashing the FAT too badly. If you write say a 1MB file, it will create the dir entry, then append the data, updating the FAT at every cluster, and then at the end when the file is closed.
As stated above, local RAM cache, with a flush after a timeout, is the only solution, because you have no way of knowing what Windows (or whatever OS) will be doing next. And you can get SPI SRAMs which are physically small and fast enough for this purpose. Of course there are power-down issues with a corrupted file system but you will always have those because, like I said, there is no way to know how far Windows got with the file write. There are cunning ways to detect the file close by scanning the data and looking for a specific pattern which the Windows program inserts at the end of the file.
In the context of FLASH endurance, it is ok. Each sector can be written 50k-100k times depending on how worried you are about adjacent line disturbance limits of the FLASH.