So, I recieved a notification saying that I got 20 reputation and now I could use chat.stackoverflow.
The problem is that on chat.stackoverflow they say I only have 18 reputation.
Shouldn't this be more immediate?
Nearly everything on Stack Exchange is very heavily cached. This includes chat stats.
Not cached on the client-side, mind you. But on the server side. Meaning that it'll take time for more up-to-date information to reach it.
The assumption is that aside for this first time where you need 20 reputation (and another one at 1000), it doesn't really matter how much reputation you have thereof. So it's not needed to overload the server with data requests.
Wait it out. It only take a couple of minutes for the stats to update, and you won't have the problem anymore (Unless you get quite a few downvotes and go back to below 20).