Sherlock waits because he thinks John will come back. He always comes back.
There was the time with the missing favorite jumper that was dyed pink and shrunken down a size or two. There was the time when Sherlock placed a dissected pig on John’s bed, explaining that he had nowhere else to put it (mostly because John had told Sherlock that kitchens were not sanitary places for anything consisting of blood or body parts or anything but food, really). There was the six (seven, or eight, or maybe even fourteen) times that Sherlock had completely ruined John’s dates with either a barrage of text messages, simply showing up to the location of said date, or simply being in the sitting room the exact moment that John attempted to take his particular date home for (obviously) adult-related activities. There was the time that Sherlock told John that Harry was over at the flat and drunk, just to get him home because he, himself, was sick with the flu and couldn’t reach the cup of tea placed on the coffee table roughly two feet away from him. There was the time he faked his own death.
John always comes back, so Sherlock waits. It’s Christmas Eve, sure, and roughly an hour and a half to Christmas dawning, but he’ll wait. He’s got a decent sized bruise on his cheek - blue, gray, and a bit of purple (it sort of matches his scarf), but it’s not bleeding and he’s not dying and he really just wants to spend Christmas with John.