Instead of doing raw block io, you could just repartition the drive so you have a small data partition that doesn't take long to fsck. No need to reinvent the filesys^H^H^H^H^H^Hwheel. Or, slightly more ambitious (but not to the extent of writing a new filesystem), patch the kernel to support ext3, or even just FAT.
If you do it right the only time you need to worry about file system state is if you do something dumb like yank the unit out of the dash while you're editing something, anyway.