Note: a pure-width fitness function

2000 steps may not be enough
In[]:=
ParallelTable[i->ResourceFunction["AdaptiveCellularAutomaton"][<|"MutationFunction"->{2,"Symmetric"->True},"InitialRule"->{0,5,1},"AdaptiveIterations"->10000,"MaxSteps"->2000,"FitnessFunction":>(If[TestCALifetime[#]==-Infinity,-Infinity,Times@@Dimensions[#]]&[CellularAutomaton[#1,{{1},0},2000]]&)|>,"BreakthroughStates","Plot","PlottingRegion"->"Lifetime","PlotLabels"->({#Fitness,#Index}&),RandomSeeding->2326+i],{i,150}]
LinkObject
:Unable to communicate with closed link LinkObject[56345@127.0.0.1,83560,136].
KernelObject
:Discarding kernel 94 (epsilon.wolfram.com//usr/local/bin/wolfram150).
LaunchKernels
:Requeueing evaluations {175} assigned to dead kernel 94 (epsilon.wolfram.com//usr/local/bin/wolfram150).
LaunchKernels
:dead kernel 94 (epsilon.wolfram.com//usr/local/bin/wolfram150) resurrected as kernel 204 (epsilon.wolfram.com//usr/local/bin/wolfram150).
LinkObject
:Unable to communicate with closed link LinkObject[56348@127.0.0.1,83500,76].
KernelObject
:Discarding kernel 110 (threadripper.wolfram.com//usr/local/bin/wolfram150).
LaunchKernels
:Requeueing evaluations {191} assigned to dead kernel 110 (threadripper.wolfram.com//usr/local/bin/wolfram150).
LaunchKernels
:dead kernel 110 (threadripper.wolfram.com//usr/local/bin/wolfram150) resurrected as kernel 205 (threadripper.wolfram.com//usr/local/bin/wolfram150).
Out[]=
​
ParallelTable[i->ResourceFunction["AdaptiveCellularAutomaton"][<|"MutationFunction"->{2,"Symmetric"->True},"InitialRule"->{0,5,1},"AdaptiveIterations"->10000,"MaxSteps"->5000,"FitnessFunction":>(If[TestCALifetime[#]==-Infinity,-Infinity,Times@@Dimensions[#]]&[CellularAutomaton[#1,{{1},0},2000]]&)|>,"RuleChanges",RandomSeeding->2326+i],{i,150}]