I always liked the Dakota hotel, though they certainly do not have a spa! You are lucky if they have good hot water. That said, its wonderfully priced and quite charming if you need a place to crash!
seriously, hotel diva is very chic
It’s not always moderately priced, but I’ve gotten good last minute deals at off times of year a few times at the Hotel Vitale, right on the Embarcadero (note: both times the rooms have definitely not looked out toward the water and have been on the second floor). It’s worth checking as it’s really nice. Right across from the Ferry building.