It took me a while to figure this out because their first rejection message made it sound like just one of the savers wouldn't launch. But no, it was all of them.
Turns out that you can't use CFBundleGetDataPointerForName on iOS to turn a string into a function pointer, even if your build options include "don't strip symbols". Apparently the process of doing an Archive build strips your executable whether you want it to or not.
So: Submitted on June 22, rejected on July 3 (11 days). Submitted on July 3, rejected on July 13 (10 days). Today is July 19, so I guess they'll next try it on July 30. Sigh.