MCUs from Microchip, STMicro, TI, and many others have excellent PWMs built in.
The 16-bit MSP430F5172 from TI is a good one, though limited to 32k flash 2k RAM. It’s only $1.70 in 1,000 qty. The PWM has 4 ns resolution.
From the MSP430F5172 data sheet:
TD0 is a 16-bit timer/counter with three capture/compare registers supporting up to 256-MHz / 4-ns resolution.
TD0 can support multiple capture/compares, PWM outputs, and interval timing. TD0 also has extensive interrupt capabilities. Interrupts may be generated from the counter on overflow conditions and from each of the capture/compare registers. External fault inputs as well as a external timer counter clear is supported along with interrupt flags from the TEC0 module.
Also STMicro makes a number of stand-alone PWM chips with features like these from the SG2525: