I've completed the planned improvements:
- Self setup/management of 2fa
- Implementation of 10 emergency tokens, provided in clear text only when the user sets up their own a2fa via the above method
- Set a single browser as trusted (Option not available when using an emergency token)
- Events for all steps of the enable/disable/setup process so appropriate listeners can be setup later.
No tests as yet, typically
Still planning on posting the changes to github at some point. Hopefully have the time for that in the next month or so.