Today I checked out the Marriott bill and found that they had indeed charged my credit card but simply had omitted my Marriott Rewards account number which explains why the stay didn't post to my account.
The only possible reason I can think that the Sheraton stay was comped is because when we originally checked in they had ugraded us a suite comrised of two rooms (even though we had only reserved one room). Only one of the rooms was ready at the time so we deposited our stuff there, spent about 1 minute admiring the beautiful view of the Inner Harbor, and went out to work, dinner, etc., returning to the hotel late at night. There was a phone message saying that the party in the other half of the suite had decided not to leave that day and that they apologized but we would only have one beautiful room of the suite. Since we did nothing but sleep, I had almost forgotten about that. Maybe they figured this was worth a comp.
The Hilton is a real mystery. We never gamble and I check every ossible billing name they might have used. They checked under our name, our credit card # and even checked the right room number for that night. There were just no charges. Oh well. I have always tried to be consistently lucky.

Maybe I should try gambling.