You've made some mistakes with the Game of Life rules. You've missed out the overpopulation rule:

Any live cell with more than three live neighbours dies

Nit: > I guess there’s a harsh third rule which is, “if the cell is dead, it stays dead”.

That phrasing is inaccurate, if a dead cell stayed dead, the first rule wouldn't work. I'm not sure that particular sentence adds much to the flow, honestly.

You're thinking about the cells as toggles on a stateful grid, TFA is thinking about them as pure functions that take in an input state and output a new state (with "off" being the default).

From that perspective, there's no point in "killing" a cell, it's simpler to only write out the 0 -> 1 and 1 -> 1 transition cases and leave all of the other cases as implicitly 0