Sampling time is very long (minutes per sample)

The reason this is slowing down is that NUTS decides for some reason that it needs to simulate very long trajectories for each sample, so that the samples are more or less independent.
I’m not sure, but by best guess is that in this case this is because the posterior density isn’t smooth in your model. You could try to rewrite the switch using a smooth approximation, something like in Frequently Asked Questions