Why didn't I get badge name right now?
(even though the badge progress tracker on my user profile or the review stats page indicates that I qualify for the badge; I even got the message "Congratulations - you earned [badge name]")
Most badges (with the exception of the Informed badge) are awarded by a scheduled job which runs once every hour and are non-deterministic, i.e. there is no guarantee that your badge will be awarded within an hour.
Additionally, if an event occurs during the time between you qualifying for the badge and the scheduled job running that causes you to no longer qualify for the badge, you will not earn the badge. For instance, if you edit and answer a question and your answer gets upvoted, but it gets downvoted back to 0 before the script runs, you won't earn the Explainer badge. If the badge is one that can be tracked in the user profile, it may take some time before it once again shows up as a trackable badge.
Tag badges are based on tag scores, and those are calculated once every day (in the early UTC morning), so tag badges are awarded even less often.
More information can be found here: How long does it take for badges to be awarded? How are they generated?
What are "retired" badges?
Retired badges are those badges that are no longer awarded by the system, either because the feature they are related to was later removed, or because the team has decided that it promotes some type of activity that should no longer be promoted.
Users who earned retired badges will still be able to keep them, but they can no longer be awarded to new users or existing users who haven't. Note that it's still possible to "earn" retired badges by merging an older account with a retired badge into a newer account without it; this is why you may still see them being awarded from time to time.