The logic for ensuring we don't duplicate auth token requests needs updating - currently if an auth exchange is already in progress, auth() just returns False which can lead to some undesired behavior in certain logic routines.
Ideally auth() would block until the auth exchange that's already in progress completes.