If I'm going to arrive after 11pm, I always call the hotel and let them know I'll be late. At some point they're going to think you're a no-show and want to sell the room, and it appears this happened to you. They have no way of knowing you're going to arrive at 3 in the morning unless you call and tell them that.
I recall one stay in Atlanta where I didn't arrive until around 9 in the morning due to flight delays from the night before. I had called the hotel and let them know of the late arrival and my room was ready on arrival.
Did they refund the cost of the room?
Welcome to FlyerTalk