I think I tried to explain quite well what I wanted

But I'll try again.
A micro controller is responsible for reading and writing to and from a LED + lightsensor. Internally, the light sensor data is used (among other things) to do brightness control of the LED's. The STM32 is also responsible for controlling the LED's via the I2C led driver. All simple and logical I would say.
STM32 -> LED + Lightsensor
Once the ESP32 is up and running, The ESP32 now becomes the boss over the leds. The STM32 still wants to send messages to those leds, but those are not relevant. The ESP32 needs to override them.
So an example is, the STM32 is up; the ESP32 is sleeping/doing something that not involves the LED's. The STM32 pulsates in a rainbow color an RGB led. Lets say for arguments sake, that's the only job of the STM32, to generate a rainbow pattern; but the current color of the rainbow, is important for the ESP32.
Now, the situation changes, and the ESP32 wants to control the LED. For example, every time the Red component in the RGB pattern comes up; the ESP32 keeps the LED to red.
So, the ESP32 will need to read the LED I2C messages, and every time the Red component is dominant, the ESP32 fully turns on the LED (by sending the i2c write message 255, 0, 0 the the appropriate registers.
If I where to use multi-master, the ESP32 needs to either spam the RGB value constantly, overwriting what the STM32 just sent (which surely will be an ugly effect), or the led driver will only accept messages from the ESP32 master. I think neither of those are acceptable solutions.
Once the ESP32 goes into sleep mode; and lets go of the bus, the STM32 is in full control of the leds again.
Did this hopefully describe better what I intended? Note that the rainbow + red is just an example. The truth is, that the STM32 will control multiple leds, and will use it to indicate various states of the STM32's statemachine. Also important to note, that the STM32 is a black box, which I don't have source code for, nor do I wish to reflash it. Obviously, if I could change the content of the STM32, the solution would be far far simpler
