If you check the posterior, you should see that the zi parameter is mostly either 0 or 1:
In [24]: np.mean(trace1['zi'],axis=0)
Out[24]:
array([0. , 0. , 0. , 0. , 0. , 0.9932 , 0.99335,
1. , 0.99995, 1. , 1. , 1. , 1. , 1. ,
1. ])
So you’re not seeing much switching behavior because there isn’t much switching behavior (i.e., there is quite a bit of certainty about the value of this parameter in the posterior). Is that not what you expected?