Why a salted hash? And I don't see how the user can reset their password if the ncryptsec can't be rotated (unless that's done client side as part of the reset flow)?
Discussion
The password is reset by 1) the client decrypting the ncryptsec, which was delivered by the server after email recovery to confirm their identity, with the previously stored salted hashed password. 2) encrypting the nsec with a salted hash of the new password and sending the ncryptsec and along with the hash of the salted hashed password back to the server. 3) storing the salted based password in localstorage.
Why salted hashed password? Just to provide a bit of extra protection over the password in localstorage. If its not salted then it could be attacked with rainbow tables. Ideally the salt would be unique to the user and not stored locally so only the malicious server could bruitforce it.