Here is a boring update to the previous elevator idea:
When someone presses the “call elevator” button, the next elevator traveling to that floor (in the correct direction) will stop to let that passenger on.
However: sometimes an elevator is COMPLETELY FULL, yet it stops at the floor anyway.
This is just a waste of time for everyone: the current occupants are delayed, and the person who pressed the call button just has to press the button again to summon a new (hopefully empty) elevator.
Install a grid of “electric eye”-style detectors on the elevator ceiling. If enough of them detect an obstruction (for example, a passenger) below, the elevator will be declared to be “full.”
Then, the declared-as-full elevator will not stop on a floor where the call button has been pressed unless a current occupant is also getting out on that floor.
PROS: All of them!
CONS: None of them!