I use methods and properties on the diagram all the time. However, I also use clusters or arrays of ctrl references passed into subVIs as well.
I don't think it's a good idea to manipulate UI objects from within a class unless the main purpose of that class is to manipulate the UI. Like a UI class.
In your example, I would create a method called Engine State. I would read that state, and if the engine was running, I would disable the button.