tl;dr: Pywikibot uses the usernames global for assertions, even when authentication happens via OAuth. Setting authenticate but not usernames will result in errors like NoUsername: Logged in on lang:family via OAuth as UserName, but expect as None. See Manual:Pywikibot/OAuth/Wikimedia as an example of how to set up the configuration correctly.
The current error message is: {P3657}
It's not impossible to figure out from that that you don't need to log in explicitly when using OAuth, but it's not exactly user-friendly either. It should just say something like "Skipping login, you are using OAuth so you are always logged in."
Two UX complications worth considering:
- the user might have an OAuth token for the wiki which is invalid. Trying to use the login API would probably still fail in that case, but in uglier ways.
- the user might have an OAuth token which is valid for the wiki on which they perform the login, but not for all wikis on which the session saved via login.py would be valid (if it's a CentralAuth session or something similar).