esp32 driving zener diode with 2.9v threshold at the gpio
If I drive the microcontroller pin high that means the zener diode
  will conduct and the input pin will detect the high voltage.


With an output pin high at 3.3 volts, the voltage after the zener diode (2.9 volts) will be 0.4 volts at the input pin and not enough (possibly) to rise past the lower limit for detecting a logic 1. It sounds like a problem to me or, if it does work it'll be very flakey.


  If I want to drive the Zener diode with the ESP32 GPIO, will that be
  appropriate?


Probably not - I'd consider using a BJT fed from the zener via a 220 ohm resistor. The BJT can be flakey in terms of knowing what the base-emitter voltage might be to get a mA or so through the collector but it's likely to be better than your proposed idea.