The more I pulled to stretch the approach, the more the aeroplane sank
Below best-glide speed, and unambiguously so as you approach minimum-power speed, the usual relationship between pitch and flight path inverts. Pull the nose up and induced drag rises faster than lift; the aeroplane slows and sinks more, not less. At STOL approach speeds you are living in this regime, which means the controls swap jobs: power controls your descent rate, pitch controls your speed. Once you fly the approach with the throttle instead, the aim point stops wandering.
I can't judge my height in the last ten feet over the strip
Real pilots judge the last ten feet largely with peripheral vision, the ground rushing past at the edges of sight. A monitor gives you a 60–90 degree cone and a flat image with almost no depth information. "Judge your height over the gravel" is not advice you can follow; you need substitutes. The two that work: known-size references (a tree line of roughly known height, the strip's width, which your brain calibrates over repetitions at the same strip), and the far-end sight picture, where the far threshold sits in your windscreen at flare height.
At the sloped strip my approaches keep ending up low and slow, even though they look steep
Slope also lies to your eye on approach: rising terrain under the flightpath makes a normal glidepath look steep, so pilots flatten out and arrive low and slow. Trust an angle you can verify (the far-end sight picture you calibrated in calm conditions) over the sensation of steepness.
The approach was trimmed and stable all the way down, but I was slow crossing the fence
Wind near the surface has its own gradient: 15 knots at pattern altitude can be 8 in the flare, so an approach trimmed at altitude arrives slower than you trimmed for. The common rule of thumb, add half the gust factor to your approach speed, is the operational patch for this, at the cost of some float you must budget for.
Sometimes I float forever, sometimes I drop it on hard, and I can't tell what I'm doing differently
The float and the plop are the same energy equation mismanaged in opposite directions: one ends long and flat, the other short and hard. In a recorded trace they have opposite signatures in the last 100 feet, shallow and fast versus steepening and decaying.
My average touchdown rate is fine but I can't tell if I'm actually getting better
Touchdown distance distribution beats touchdown rate as a measure of competence: a tight cluster at 1,000–1,500 ft is a pilot in control of the aircraft's energy, and a 3,000 ft spread with lovely fpm figures is not. Variance beats mean: −200 fpm with a spread of ±40 is a better pilot than −120 fpm with a spread of ±250, and only data across many flights shows the difference.