Don't forget that the MT7688 SoC also has 4 very precise hardware PWM units built in! On the Omega2(+) though, you can only use 2 of them (PWM0 and 1) because it's lacking pins for PWM2 and 3 - on the SMT Omega2S, all 4 are available.

These PWMs would even work with standard Linux /sys/class/pwm interface, if onion had enabled them in the device tree - which hasn't happened yet despite discussing it about it a year ago.

But there is a nice tool written by @Alexey-Avdyukhin for controlling the hardware PWMs - see his forum post here.