I never see the sink developing until I've already hit the ground hard
The vestibular system announces a developing sink rate immediately; a desk pilot gets it visually or from the VSI, a second or more later. On the back side of the power curve, a second is a lot. Until your eye learns the visual signature of developing sink (the aim point sliding up the windscreen), fly your STOL approaches two or three knots faster than the real-world technique would prescribe. You will give back a little float; you will stop arriving in unrecovered sink.
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.
I pulled the power in the flare and the runway just came up at me
You chopped power in a slow, draggy configuration and the sink rate spiked instantly, because on the back side of the power curve, power was the only thing holding the descent rate down. 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.
It bounced nose-first, I pulled back, and the second bounce was worse
The diagnostic is that pulling harder makes it worse. The lesson to learn is not the recovery; it is the trigger: second bounce, go around, every time. Sims reproduce porpoising well, so rehearse the trigger until it is reflexive.
I pulled back hard, got the stall warning, and it still hit hard
The rate reduction is paid for out of kinetic energy: you are pitching to trade airspeed for a shallower flight path. Arrive slow with a high sink rate and there is nothing left in the account. The pull produces a nose-high attitude, a stall warning and a firm arrival, and no amount of flare technique fixes it, because the error was made at 500 ft. Most flare problems in simulation are approach problems with a four-second delay - the stabilised approach gate at 1,000 ft exists for exactly this reason, and it is a subject of its own.
When I close the thrust levers the nose drops and it sinks onto the runway
Ground effect reduces the downwash over the tailplane, which in most conventional aircraft produces a nose-down tendency during the round-out - some of the back pressure in a flare is not raising the nose but holding it against that change. On underslung-engine jets, closing the thrust levers itself pitches the nose down, which is why the flare and the retard have to be coordinated rather than done in sequence: retard first and you have added sink at exactly the wrong moment.
My flares are always a beat late no matter how hard I concentrate
Human visual-motor reaction is a couple of hundred milliseconds; a typical sim chain adds somewhere between 60 and 150 ms of motion-to-photon lag depending on hardware and settings. Call the whole loop a third of a second. This is why desk flares run systematically late, and it is also why a frame stutter at twenty feet is worse than a low frame rate: a stutter is a moment of flying blind at the exact point where a third of a second costs feet. Lock the frame rate for consistency rather than chasing a maximum, and keep anything that streams or refreshes at low altitude - photogrammetry, live weather updates - out of a landing practice session.
It just slammed on and I only got the pull in at the very last second
Flared late. Nothing happened until impact; pitch rate spiked in the last second as you rescued it. The four classic flare failures feel similar from the cockpit - most of them end in a firm arrival - but they leave different evidence, and two numbers are enough to separate them: how long the flare took (time from 50 ft to touchdown) and how hard the touchdown was.
It ballooned, hung in the air, then dropped in nose-high and bounced
Flared high. The runway stopped rushing, the aircraft hung, sink rebuilt, and you dropped in nose-high, possibly with a bounce. If you arrive at thirty feet with 400 fpm because you were shallow and fast, the same pull balloons you.
It landed hard and I can't tell if I flared too late or came in too slow
Arrive slow and the sink rate at the threshold is already above schedule, the flare is short because there is no energy to extend it, and the touchdown is hard in a way that feels exactly like a late flare. Diagnosing a slow arrival as a late flare is the catastrophic misread: you respond by flaring earlier, which bleeds more speed, which makes the next one worse. The tiebreaker is threshold speed against VRef, not feel. Never diagnose a flare without it.