I would use an exponential distribution instead, this allows to take the limit fp->0, without changing the state too often or too predictable.

As approximation, you could use this algorithm every (small) timestep dt:

If it is on, set it to off with probability pdt*dt/fp.

If it is off, set it to on with probability (1-pdt)*dt/fp.

The equilibrium is "on" with probability p=(1-pdt*dt/fp)*p + (1-pdt)*dt/fp*(1-p). This is solved by p=1-pdt which is the result you want.

The probability of a change in dt is then given by 2(1-pdt)*pdt*dt/fp and the average time between changes is 2*(1-pdt)*dt/fp.