In the world of asynchronous jobs running in the background (validating passwords using stronger hashes, that take additional compute time to validate, or iterating over LDAP objects to seed caches) progress reporting provides an important feedback loop to users "waiting".
For the verification of credentials for example, the task UUID could be stored as part of the session (but not the session cookie), and the browser could be told how to check for its status. When complete, a specific URI could be hit to disclose the final judgement on the login attempt.