Follow-up filed: TRACK-100 (forgot password), which depends on this issue.
One detail for this issue that came up while writing it: the confirmation link must not verify the address on a GET. Mail scanners such as Outlook Safe Links open links before the person does, so a GET would verify the address without them. Make GET show a "Confirm this email" button, and only the POST it submits verifies the address and uses up the token. Please add this to the tests.