Adding a "save_list=0" (or just a fourth argument '0') to the two calls to SetUserOption in admin.py speeds up that "set one option" flag a *whole* lot.
I've got to stop answering emails sequentially ;)
It might be that similar "optimizations" to the other forms processing (DeleteMember, primarily) are a bit unsafe, but it seems like a huge win for the SetUserOption calls, and not very unsafe, since the list will be saved after processing all users anyway.
The SetUserOption() calls are being made even if there have been no changes, while the other MailList methods are only called if something actually has changed. I think that fact justifies putting off optimizing this further, at least for now.