I see! What seems to have been happening was that you must be incrementing the value for the smell creeping in every frame, and since it was running at 144Hz it was happening too fast for me to make it through. Once I changed my display to 60Hz, it worked as you described.
Timing can be tricky! For this kind of thing you'd want to either increment the values on a physics timestep (if Godot has something like Unity's "FixedUpdate" function), or save the time when the transition started and compare the current time to that (divide by length of transition and cap the value at 1 to get a 0-to-1 value). Hope that helps a bit, keep up the good work!