I like the pass phrase option.
Another possibility is “security questions”.
For example: What is your maternal grandmother’s maiden name?
Now that I think about this, the security questions are only good for password reset, not necessarily for forgotten user names.
You could allow them to guess at what their username is, and then see if they can answer the questions.
Maybe when they sign up, remind them to save their username in a safe place. Without an email address or any PII, it may not be possible to recover your account.