Back in the days when my employer did a lot of billable work for clients, I used music to track my time. I'd decide which client's project I wanted to work on, pop in a CD, and when the CD ended I'd write down the total time, take a little break to stretch or get a drink or visit the bathroom, and then pick the next thing I wanted to work on and the next CD I wanted to listen to.
This gave me convenient time tracking and reminded me to get up and take breaks.
This gives me a simpler idea -- use a USB drive and run a script that detects it, writes timestamp to it as it is plugged in -- say intermittently every 10 minutes. The log can either be written to the USB drive or to a local file.
heh, my even simpler idea: use the capslock key (replacing the normal function, presumably); not used for anything else, standard on every computer, almost always has a visual indicator, probably very easy to script around.
Officially, the required lifetime for a USB type A connector is a disturbingly-low 1500 insertion cycles. I expect present-day connectors to greatly outlast this in practice, of course.
The Wikipedia article I found, probably the same one you found, only specifies male connector cycles "The lifetime of a USB-A male connector is approximately 1,500 connect/disconnect cycles." I was more concerned about the receptacle, which I can't seem to find info on. I wouldn't care to lose a thumb drive so much, but a port would be horrible.
Regretfully, "connector" is used generically in the USB standard to refer to both the plug and receptacle. Type-A "standard durability" connectors, plug and receptacle, are specced for 1,500 cycles minimum. 5,000 for "high durability". The only type specced for more is the Micro connector, at 10,000 cycles.
See section "5.7.1.3 Durability or Insertion/Extraction Cycles (EIA 364-09)" of the USB 3.0 standard. I'm sure it's in 2.0, too, but the section number may be different.
I used to do per project fees exclusively but I found that with certain jobs, mainly ones that involve a lot of drawn out unpredictable grind (like repairing broken circuit boards), hourly is much better for me. Different situations call for different solutions. I still charge per project for jobs that don't lend themselves to being measured with clocks. Oh, and just FYI: not all freelancers are programmers! In fact, some people do work that doesn't involve computers at all. True story.
And my post was not exactly geared to programmers either. Aside from the half sentence which says "when I am actually typing the solution into an editor" there is nothing programmer specific.
This gave me convenient time tracking and reminded me to get up and take breaks.