First off, if you meet the freelancer on one of those sites, you are probably obligated to work with them through that site. For example, if you meet an overseas developer through Upwork, you have to hire and pay him through Upwork, or pay a huge penalty that is by definition higher than the cut they take from the payments you give him. Obviously they don't let you contact the freelancer directly without going through them, otherwise how would they make their money?
I'd be more inclined to set my own tracking methodology, and to pay
directly to the freelancer. The reason is that I'm a software
developer looking for another software developer, so I would know how
to track progress accurately (unlike the average outsourcing user -
typically non-technical folks).
This makes absolutely no sense. First off, you think there aren't any technical people working at these freelancing sites that get tons of business from software development? For one thing, who is building and maintaining their system then?
If the freelancing website has hourly tracking, they will either allow the freelancer to enter their hours manually, offer an automatic tracking/screen recording utility, or both. For example, Upwork a desktop application that logs time while it is active and screenshots your desktop at random intervals to "prove you are working". It also tracks the frequency of mouse and keyboard clicks. This is completely automated and there are no "non-technical" folks having any kind of say in those hours. Nobody has the ability to say how many hours the freelancer worked except the freelancer (and the tracking utility, if used).
If you're trying to come up with your own "tracking methodology", it sounds a lot like you want a fixed-price contract, which is also completely possible on most of these sites. Otherwise, you don't get to declare how many hours the freelancer worked. You can say "you're taking too long, you're fired" and you can reject manual hours, but if you want to say "I'm a developer and I know that the work you did should have taken 7 hours", then do fixed price and pay them for 7 hours.
Tracker software like that used at Upwork and formerly at Elance is about the best you can ask for. It's not going to stop someone from cheating you if they want to cheat you, but neither will any other solution short of installing some Big Brother cameras throughout their household so you can make sure they aren't watching porn on the TV while pretending to work on whatever computer they installed the tracker on.
If you do have some spyware that you rolled up to keep an eye on exactly what your freelancer is doing on their computer and you think they are too unintelligent to just goof off on a different computer (or phone or tablet or console), I don't think any of the freelancing websites will care if you come up with your own system for tracking as long as the freelancer agrees to use it.
If you just want to pay them based on their repository commits, which is completely reasonable in many situations, just set milestones and make milestone payments.
What do I risk by paying directly to the freelancer?
Losing your money and/or never seeing the product. If you pay them first, they can walk away with your money, and you can't go to anyone for help or leave them a bad review. If you don't pay them until they're done, they make excuses for 6 months and finally disappear completely, and you can't go to anyone for help or leave them a bad review.
That doesn't mean that you can't get cheated at a freelancing site, but at least there you can see the freelancer's prior work history, there are services like escrow protection, and the site can sometimes return your money to you in case of fraud.