The main problem is that you ask for a password to create the account, I would avoid that and simply use a login via email using a temporary token with a very long session.
When the nsec must be exported, just create a password with some random words to have a good entropy, ask the user to repeat/write it down, and send the email with the ncryptsec.