The problem isn't with your autocomplete control, it's with your form.
Check out how Trello does this.
1. Before you begin, the input field explains what you can enter
Note that the form is titled "Add Members" and allows you to input multiple email addresses and select multiple people in the list.
2. When you begin typing, "searching..." appears to indicate that the system is looking for something
The "invite" button is dimmed because there's no successful match.
3. When the system matches results with your current input, it displays them in a list
Because you're still typing and haven't either selected someone by clicking on them or typed out their name in full, the "invite" button is still disabled.
4. Once you do select someone, the input field is disabled and the invite button is brightly lit.
Note that the input field doesn't update based on your selection.
5. Typing an email address in the field works too.
If the system notices you entered a valid email address, it'll let you click the "invite" button too.
In other words:
- Combine your two input fields
- Use copy to explain what input is accepted
- Update the user while they type to show them what's going on
- Use clear disabled/enabled styles for your buttons to indicate when the state changes
- Allow both email and username to be entered into the same form