I recently stayed at Gasthof Simony-Hallstat - typical creaky old floors, small showers, standard breakfast, but stellar location and a great rate.
The place next door, Seehotel Gruner Baum looked a little nicer, and probably has great views from any room (either lake or plaza).
I highly recommend staying in the small town itself so that you can enjoy a quiet evening / take a boat ride without waiting, etc. We arrived around 6 PM, and it felt like a quaint small town that evening and the next morning. But by about 10 AM the busses of Chinese tourists started showing up, and it turned into Disneyland. Apparently Halstatt is famous in China, and they even built an exact replica of the town.