All of your suggestions are good answers. In 3.5 specifically, the use of skills like Survival and Knowledge(Local) seems appropriate to accurately gauging time, as does casting a spell at CL 2 that lasts 1 hour per level (like Mage Armor). Your suggestions are actually better in most cases, though.
Hourglasses in 3.5 are 25 gp and weigh 1 pound. (or free and weightless. Thanks to HeyICanChan for noting the 1st level Sorc/Wizard spell slow burn, which requires an oil-filled hourglass as a material component with no listed cost. Assuming these keep decent time, they are the obvious choice)
That's neither heavy nor expensive, and easily portable.
Using the stars and other environmental conditions sounds like a survival check to me, and makes sense (adding a sundial is kinda dumb unless there's a moon out and you have low-light vision, and even then you should call it a moon dial so I am less annoyed by the idea of you using a sundial to track time at night :P) It's obviously less accurate than other methods, but it's free and honestly most of the time no one cares if your party sleeps for 9 hours 45 minutes or 10 hours 15 minutes. Precision just isn't that important when it comes to your watch shifts, and, honestly, all really precise watch shifts do is make it easier for an enemy to coordinate an attack on your camp at night.
Using 1-hr candles is basically the same as an hourglass except it produces light and needs to be kept out of the rain and wind and such, which makes it usable is slightly fewer circumstances (generally, you're using this while camping, which means you already want to be out of the wind and rain and away from possible hostile Spot checks, which is usually possible even in bad environments due to things like Rope Trick and Mordenkainen's Magnificent Mansion). 1-hr Candles cost just 1 cp, so an hourglass takes 1,250 watch shifts to break even. Candles also are weightless, which can be nice.
I suppose, given the question, I should note the water clock in the PHB, which is the wrong way to keep time-- expensive, bulky, and sensitive to motion.