PWM: Add additional change checks

First of all we need a fresh event time. Android does not always provide proper time update after deep sleep.

Second since we synchronize specific parts of two methods, we need to check some conditions in case they changed while we parsed the synchronization blocks.