OK, nightly update. I figured out what's going on with the read-write error recovery page.
It looks like to make it work with Drive Setup, there was a hack to make it assume the DBD bit is always set (disable block descriptors) during mode sense requests, so the replies never return a block descriptor. The reason was so the allocation length would be big enough to contain the format device page, and the standard doesn't require you to return a block descriptor. I read about that in the comments--makes sense, still follows the SCSI standard.
Well, it turns out that Apple HD SC Setup assumes the drive always includes a block descriptor in mode sense replies. Technically this is against the SCSI standard because drives are not required to include a block descriptor in mode sense replies, but in practice it looks like real drives tend to always include a block descriptor. With the length it was asking for when requesting the read-write error recovery page, it was going past the end of the actual page length and causing an error. Anyway, if I change it so that drives always include a block descriptor when the DBD bit is 0, everything works OK and I get past that first problem.
It also appears that drives tend to include as much data as they can when the allocation length is too short rather than error out. So to (hopefully) make it work, I've changed the code so if the allocation length is too short, it simply truncates the response to the allocation length instead of returning an error. This should fix the case described in the comments about Drive Setup not providing a big enough allocation length. I've also verified this is how a real SCSI hard drive would respond.
Now I'm past that page problem and I'm at the point where Apple HD SC Setup is sending a command that SCSI2SD doesn't yet know how to handle. I'll fix that shortly, but first some very good news:
During my disassembly of Apple HD SC Setup, I noticed that the code pays attention to whether the command key is pressed when you click Initialize. Sure enough, if the command key is pressed, it completely skips the low level part of the formatting which means it formats really quickly. This also makes it skip the unknown command, so it actually works! It definitely gives the full usable drive space too. I just formatted a 2 GB SD card and it came out to 1,883.7 MB available.
This is true for Apple HD SC Setup 7.3.5. Unfortunately older versions such as 7.0.1 don't have the command key trick, but they also seem to not try the bad command that causes an error. Sadly this means they will format slowly though. (The older versions also assume that the special drive name is a small 20 MB drive. Grrrrrrr....)
So in conclusion: I'll make it completely work soon if someone's crazy enough to want to do a low level format without holding down the command key, but with the changes I described (add the read-write error recovery page, fix the block descriptor thing, set manufacturer to "x" followed by seven spaces, set drive model to all spaces), it works as long as you hold down the command key when you click Initialize and you have a new enough version of Apple HD SC Setup. I'll get some patches ready soon. I'll also verify it still works with Drive Setup.
Edit: Oh, wow. So even though it defaults to 18.6 MB when you have the Seagate drive model, that's just a default partition size. You can click Partition and then click Custom, and that will let you delete the partition and create a new one that fills the entire drive. In other words, I didn't need to do any of this work in the first place...it works with the SEAGATE ST225N drive name, just kind of in a confusing way. The internal drive size database is used, but it's only for determining a default partition size. It's not blocking you from using the rest of the drive. Oh well...all the things I found will still probably help reliability.