Hotels are also extremely busy, and the cleaning staff only has a certain amount of time to get every room they can clean. They are on a tight schedule to do it. I know because I worked for several hotels as a front desk clerk. Even if they were told he checked out, it still could have fallen through the cracks because the cleaning people were trying to get their work done and would probably check on the room later after they were done. It's more important to get the rooms ready for the guests already there and those about to check in than go back and forth if someone is really in a room or not unless that room is needed for a guest that is checking in. Usually they go by the "Do Not Disturb" sign and just leave it be.
It could also be that he just left and didn't officially check out. And who knows, maybe he paid for two more nights, but left two nights early. He certainly had the money to do that. As long as that room was paid for, and I know this from experience, it doesn't matter if someone is actually in it or not. Hotels look for making money off of their rooms, and the only room they worry about is an empty and unpaid one.
I appreciate that it is weird, but it could also mean that the overworked staff left one room fall through the cracks or something like that. It doesn't mean he didn't do it. But it does look weird though, I'll give you that.