It is Hubitat convention that a setLevel, setColor, or setColorTemperature will turn a bulb (or dimmer) on if off. Recently-ish, Hubitat added "Enable color prestaging" and "Enable level prestaging" options to some drivers to modify the behavior in the ways you describe. You can see an example of this in their generic Zigbee RGBW bulb driver, published here:
So, if you're wondering why they did it that way, that is probably why. Hubitat will certainly implement their driver in the same way (assuming they have plans to do this). If you want to modify it in a Hubitat-like way, I'd suggest adding one of the options above like they did in the RGBW Zigbee bulb driver, then turning that feature on--something Hubitat will probably do if/when they add support for these natively. Then your driver would be consistent with others. Obviously, if you're only using this for yourself and know how it works, it won't matter--just a short history lesson.
Ok... While this code change does fix the issue of being able to do color pre-staging … I am now realizing what a hot mess the original code was.. Lots of stuff broken... I have already fixed the ability to do fine grain tuning of color temperature.. I am working on fixing the reporting of color temperature..