How can I set customer accounts to invite-only?

Another option to consider:

The Customer Fields app allows you to create a registration form that requires account approval for new customer accounts. That way, you can collect additional information from customers and manually approve those who meet your criteria. You may also configure email templates that customers will receive if you approve or deny their account.