Pinball - "All Lanes Lit" Bonus score is not behaving as expected
Looks like a timing issue.

Which ever order you hit the buttons in the last one always stays lit (and you get an extra 10 points added).

I set a breakpoint at:

rewardScore(allLaneActiveBonus);


...and just waited a sec and then continued and your code worked as expected.

So I think that you are setting all lines to LOW in checkAllLanesLit() and then only have a short delay (5mS) before looping round and checking again (at which point the button is still HIGH as you haven't taken your finger off it quickly enough) - resulting in the additional 10 points and that lane being lit again.