When system_login.py runs, it uses get_local_users(), which calls pwd.getpwall() to retrieve all users from NSS - including TACACS. If the TACACS server is slow or unresponsive, this call incurs a timeout and blocks the CLI.
The code then unnecessarily calls pwd.getpwnam() for each username returned by pwd.getpwall() - sometimes twice per user - triggering additional NSS lookups and repeated timeouts. This is redundant because pwd.getpwall() already provides the UID for every user. The extra lookups only add overhead and worsen the delay, so they should be removed.