Change email address on front end
Thanks to billythekid's suggestion, adding a password field creates an elevated session, and solves my problem.

&lt;input type="password" name="password" placeholder="Password" required&gt;


Actually I don't think it's that intrusive, and it's a good security step that should generally be encouraged when making any profile edits.