For the button I've solved in the following manner in one of my applications:
Make your microflow button conditional visible
Add another action button that resembles your microflow button but which does nothing and is conditional visible. Add the class disabled to the button, this will ensure that the button is rendered as disabled.
With version 6.10 of the modeler, elements with conditional visibility actually get removed from the DOM. This might be a solution to your problem, as you would be able to use the visibility property then.