Associate multiple email addresses with the same user account, so they can log in with either

If you create them programmatically, you could set it up so that all of the usernames are one type of email address (business or personal) and the WP email address field contains the other type.

It’s not clear if this would fit your particular use case, but one other login possibility is to integrate single sign-on. That way they could log in with their existing credentials – whether that’s something like a work MS Exchange email, or a personal Gmail account, or some other type of account that all your users have in common.