I figured it out.
It turns out the locking tab on the bolt at the end of the shaft was hitting the inside of the bell housing, just a little. I inspected everything again, and noticed that there were no marks on the bolt, but the tab showed some scuffing. I got a mirror and looked inside the bumpout on the bell housing, and there was a mark in there, about where that bolt is.
I ground about .015 off the loop on the end of the spring, to let the bolt go in a little more. I torqued it all up, and ground the end of the locking tab down flush with the bolt head. Reinstalled the starter, turned it over, and it spins the engine with no clattering noise. I'm back in business.
Thanks to everyone for your support and ideas.