Calling OLED from watchdog threads or different tasks/cores?

I have a HELTEC ESP32 WifiKit with OLED attached.

It seems as though i can use the OLED perfectly if I do “heltec.begin(…)” from “setup()” and write to the display via the main loop, however if I create a thread/task that runs on a different core, or use any sort of async ESP32 watchdog thread mechanism, writing to the OLED results mostly in garbage pixels.

Does something need to be initialized differently for this to work?