Don’t worry about performance just yet. If your setup will be used in the order of magnitude of a thousand times, then maybe.
Other than that, totally depends on what you want to do.
You could do it without the global variable, and just one FSM. On Trigger Enter animate the float and set it in one state, and when dimming is complete go into an empty “done” state. I don’t know the actions you use, whether they have finish conditions etc, but you can easily float compare every frame until the target value is reached.
Duplicate the state with the actions, change the OnTrigger global event (e.g. on exist) and set another float target value (when one dims to on, then this goes to off). Again, when target value is reached go to the (same) “done” empty state.