Two fixes, both prompted by feedback in the discussion thread.
Addresses containing ?, # or % are no longer wrongly rejected. These are valid under RFC and XenForo accepts them, but they weren't escaped in the API request, so the check came back "invalid" and the registration was blocked.
Transient API problems no longer write to the server error log. Timeouts, connection failures and server errors already allowed the registration through. The log entry just made a working board look broken. Only conditions you need to act on are logged now (rejected API key, exhausted monthly credits), at most once an hour.
Also: the API is no longer called when a save doesn't actually change the email address, which saves a credit on every user edit.