Every airline I know of with a frequent flier mile program
bases their rewards on... miles. I've got a better idea.

Points should instead accrue for every minute that a
passenger spends on a plane, from the time the door closes to
the time it opens. The value of the points will have to be
adjusted so that the minutes you get from a ~2 hour flight are
worth about the same as the miles you get from a flight now.
The advantage is that airlines will have an incentive to speed
up their flights and ground handling, and avoid long delays on
the ramp.

Now I know what you're going to say. "If airlines have to pay
by the minute they will be in a rush, cut corners, and planes
will be crashing into elementary schools right and left." Fret
not, I thought of a solution for that. When the passenger
buys the ticket they will be guaranteed a minimum number of
points for that trip. The point minimum should be the time
required to complete the flight + taxi time + 10% for a safety
margin. That way the airline has enough time to complete
the flight as planned, and they don't start losing money unless
there are significant delays. It does however give them lots
of incentive not to keep a plane sitting on a ramp for 3 hours
waiting for a gate.

Unless I'm wrong, you've got it backwards. If a flight takes one hour, that's 60 points a passenger spends, but if it takes 2 hours then the passenger has to spend 120 points. I don't see the incentive for the airline. (not my bone)