I use sand in my 29 gallon freshawater set up. It works great! I also use Pool Filter Sand that I bought in 50 pound bags at Home Depot for like $5.27 a bag. The initial rinse will save you a lot of trouble down the line. I divided the sand in half into a 5 gallon bucket, then, using a hose outside I filled up the bucket and then let it overflow, taking the lighter dust and such with it. Then, I'd use the hose to stir up the sand again and repeated the overflow. I did this several times until I felt confident that the sand was clean and no longer going to cloud my tank.
I agree, that some of the waste can get under the top layer of sand. I have coryadoras catfish that make sure of this, as they "snuffle" through the sand, pushing it on top of other sand and waste to get at food or what not. It's easy with a Python, just suck up the top layer of sand, then pull and push the Pyhton side to side to expose a little more of the lighter debris. Then, lift the Python. The sand should then settle while the waste gets ported away to your sink or yard, where ever you leave the other end of the Python.
As for Sand and undergravel filters, I suppose one could try it, but all you'll end up doing is packing the plastic grid of the filter between two layers of sand. UGFs work on the principle that the substrate remains over the grate, allowing space at the bottom for waste to collect to be broken down by the bio-filter. As no sand I know of is coarse enough to not pile right through the grate, this makes it rather hard.
Also, for sand depth, I have a planted tank so have a nice layer of about 2 inches all along the bottom. It also varies in depth. I've found sand can retain dunes and slopes better than regular gravel. If you'd like a picture of my tank, please check out the link in my sig to see what you think of sand in action.