a)
Reichts eventuell wenn du dee PCF und LCD mit 3.3 V Versorgst statt mit 5V?
b)
ich habs nur mal Testweise mit einem Arduino PWM Pin über die Schaltung am PCF8574 Adapter gemacht.
Siehe hier: Adjusting the light intensity with lcd.backlight () function - Other Hardware / Displays - Arduino Forum
Ausgang vom Arduino ging dann an den "oberen" Pin wo aktuell der Jumper gesetzt ist.
Mit einem ESP hab ich es nicht getestet.