>>Any non-hash alternatives?
No. As soon as you change the current value of the address bar, the browser will reload the page. using the hash property is your only method. If you are trying to change the url to "maintain" state so that if the user reloads the page then you will load the last "ajax" content (as opposed to the original content), then my suggestion would be to save the state to a cookie. If you see a value on the cookie upon reload then make a ajax call to "import" the content referenced in the cookie.
NOTE: yahoo has a History manager, but it depends on the hash as well:
http://developer.yahoo.com/yui/history/