As of now underlying kernel driver for Navio 2 that generates PWM needs to be fed with data at least every 100ms. It’s not documented. Sorry. It is a safety feature that is to be handled differently but you should be aware of it if you’re tinkering around at the moment. It won’t be a problem to adapt the program to this feature.
Dale is also correct about the program flow. It does indeed needs fixing! Sorry for the late answer. I haven’t been noticing this thread up until now.