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.