I have made an interesting discovery that setting duty_ticks to 0 will cause a pop even when transitioning from a close value. I think we should ensure that duty_ticks is never 0.