I've noticed that it sometimes takes a little while for hats to be awarded. How often does the system run the checks for awarding new hats? Are all of the checks run at the same time with the same frequency?
ɥʇǝS is absolutely correct, the hat award check runs every five minutes, and all checks are run with the same frequency (unlike e.g. badges).
Note however that there's some caching going on on the client – your browser doesn't update all the data on every page load, so you may not know immediately when the hat is awarded.
If you're extremely impatient, the most up-to-date data you'll get is the Homepage of http://winterbash2014.stackexchange.com/ (when you're logged in there, it'll show you what hats you have). Not the leaderboards – those are heavily cached. But the homepage shows current "Which hats does the logged-in user have?" information.