There was a mistake in my version of the code that forced early convergence with smaller populations that isn’t present in the book’s transcription of the code.
To better demonstrate premature convergence: set chromosome size to 1000 and population size to 100. You’ll notice your version without mutation converges much slower than with mutation. You can continue to decrease the population size further and further and you’ll reach a point where progress completely stops.
Sorry about the confusion!