Fair by opcode, not by time
Watch the timeline while Invaders waits at press any key. STELLAR's scheduler
gives every VM the same turn, three opcodes, and then moves on. That's fair
by count. But opcodes aren't equal. While it waits, Invaders keeps calling
$C3 RAND to stir its random seed, and a single RAND costs thousands
of 1802 instructions. So its three opcodes take far longer than anyone else's, and
the pink VM ends up with most of the chip.
Press a key in Invaders and watch its share fall. The program's own listing says it plainly:
; D 400B C3 RAND Stir the generator while we wait ; D 400C CC SERST A key yet? ; D 400D A1 00 0B IFFALSEI SEED ; D 4010 CB SERIN Take it and discard it