I was able to figure out what was happening.
The board initially boots with the LEDs enabled. Because of this, applying the device tree overlay alone did not seem to disable them, even across reboots.
However, after manually turning the LEDs off once using:
echo 0 | tee /sys/class/leds/blue_led/brightness
echo 0 | tee /sys/class/leds/green_led/brightness
and then enabling the overlay, the LEDs remained disabled, and the overlay appeared to work as expected.
So it seems the LEDs needed to be turned off once manually before the overlay behaviour became consistent.
Everything now works as intended.
It appears that when overlay_prefix is either not defined or is empty, the system behaves unexpectedly during overlay lookup. In such cases, the loader seems to attempt resolving overlays starting with -, rather than correctly resolving the overlay name.