4096 byte writes are so much faster that they should maybe be used instead.
For example take a look at
this test disk result. (That's the unboosted result without the patch.)
Suppose a 512 byte write involved reading a 4096 byte block, altering a 512 byte part, and writing back the 4096 byte block. To keep it simple and pessimistic, let's just use the slowest 4096 byte speed, 2313 KB/s.
(2313 * (512 / 4096)) / 2 = 144.56 KB/s
That's quite an improvement over the fastest 512 byte write speed of 23 KB/s!
The code is already present in
firmware/drivers/ata.c. Look at what MAX_PHYS_SECTOR_SIZE does. It could maybe use a tweak though, only increasing how many sectors are written at a time because the current 512 byte read speed is similar to 30 gig iPods.
Edit: On second thought, why not just enable write caching? You do have a dependable power source: a battery which the user cannot remove and clean shutdown before the battery gets too low. All that's needed is a set features command to turn it on, and probably a flush before sleep.