login
Signs the user in, suspending until they finish, cancel, or the attempt fails.
Never throws: every failure is a NaverLoginResult.Failure, and backing out is NaverLoginResult.Cancelled. The only exception that escapes is CancellationException, when the calling coroutine itself is cancelled.
A stored refresh token is used silently when there is one, so a successful result does not mean the user saw a screen — NAVER renews the access token and returns.
Call it while your app is in the foreground. Android cannot start the login screen from the background and gives no callback when it refuses, so a background call resolves to NaverLoginErrorCode.Internal after a timeout rather than suspending forever.
Concurrent calls do not queue: the second returns NaverLoginErrorCode.LoginInProgress immediately.