One approach to solving this problem is to run your world from a RAM disk, with regular (and atomic) pushes to disk. I implemented this on my SMP server (Linux guide here) for performance reasons, but as a side effect it should at the very least make world corruption much, much less likely to happen, especially using
rsync to push the world to disk (
rsync is about as atomic as you can get with file operations, so even a power loss during the push to disk shouldn't cause any problems).
With this approach implemented, a power loss will at worst cost you 15 minutes of work in your world (if you use the 15-minute scheduled push I do in the guide), which is a far cry less bothersome than world corruption (which has affected my SMP world twice before I implemented the RAM disk approach).