Censored Model with Hurdle Parameter

This combines the time observations:

with pm.Model() as m2:
    α = pm.Exponential('α', 1)
    β = pm.Exponential('β', 1)
    time_to_event = pm.Weibull.dist(alpha = α, beta = β)
    p_faulty_sensor = pm.Beta('p_faulty_sensor', 1, 1)
    
    p_observed_failure = pm.math.switch(
        df.observed_failure, 
        1,  # If we observed a failure we are sure of that
        p_faulty_sensor,  # Otherwise the sensor may have failed
    )
    obs = pm.Mixture(
        "obs",
        w=[p_observed_failure, 1-p_observed_failure],
        comp_dists=[
            pm.Censored.dist(time_to_event, lower=df.check_day)
            pm.Censored.dist(time_to_event, upper=df.check_day),
        ],
        observed=df.check_day
    )

But I still suspect you need to inform p_faulty_sensor by the number of observed failures. If you observed many, the sensor is likely not failing that often?

If you have multiple measurements, you have even more information about the sensor probability of failure