I was unable to achieve this and if you have buttons after the one hidden then these move all the other buttons over one space which makes for a random UX.
What I did to work around this was to use a non functioning operation (on forms I use wizard page next which does nothing on a non wizard form) coupled with a deliberately incorrect Font Awesome glyph misspelled in case they make one called Gibberish
I thens set the opposite visibility rule to the button it replaces
Eg
Edit hide when Contact.Status="Dormant"
EditSpacer hide when Contact.Status<>"Dormant"
I have asked Vlad for an option to add a spacer button that doesn't require a fake operation and fake glyph, but I obviously didn't make a strong enough case for it.
A better option would be a Disabled when function to allow the button to be greyed out (or with a null glyph) and inoperative based on hide when conditions as this would leave the UI unaltered and consistent for every BO state