Thanks for the quick reply.
I don't think it's a tagging problem. There wasn't any artwork associated with the specific files that it was getting hung up on, but just to be sure I installed Mp3tag and stripped out what little embedded art there was in the entire collection, to no effect. No abnormal characters or anything in the tags, either.
It doesn't seem to matter which specific file or folder it's reading, just that it's the last one. For example, if I have exactly 6500 files it seems to read files 1 through 6499 and then freeze on the 6500th. However, if I delete or tell the database to ignore file 6500 and leave the rest unchanged, it will then freeze on file 6499 that it had previously passed without a problem. And if I delete that one it'll freeze on 6498, and so on.
Since my first post I've tried a few other things as well. Loading the database in the RAM didn't have any impact on the problem. I tried reinitializing it thinking maybe something got corrupted the first time around, and while the initialization went fine, subsequent database updates still froze. I remembered all the hidden crap that Apple puts on the harddrive and thought that might be mixing it up, so I added a blanket database.ignore file to the root of the drive and a single database.unignore to my Music folder, which is nothing but .mp3 and .flac files and subfolders filled with the same. Now, ironically, the file it's freezing on is the database.unignore file.
[Edited to update]:I seem to have fixed it. I'm not entirely clear on why what I did fixed it - initialization had been working all along, so I don't see why initial library size would matter - but as long as it's working I'm not all that concerned with the details. Still, in case it's of any use to anyone else having similar problems or any of the developers, here are the things I tried since my last post that didn't work, and what eventually did:
I found a corrupted .mp3 file on the drive, so I ran chkdisk and cleaned up the disk.
I uninstalled and reinstalled the release version I was using to begin with (v 3.2-090323) and reinitialized the database.
I uninstalled the release version and installed the current build (v r21200-090607) and reinitialized the database.
When none of that worked, I went back to the release version and started with a much smaller collection of around 500 songs whose tags I was absolutely sure weren't in any way unusual and initialized again. I turned on directory caching, database load to ram, and database auto-update one by one and started adding about 200 songs at a time, updating the database in between each set. I eventually got to the end of the files without any problems, and database updates seem to still be working fine.
Thanks for taking the time to read this thread, and for breathing new life into my ipod.