Hello,
A "disabled button" is not ideal for UX. Even if we manage to agree on how to visually represent button deactivation without having contrast problems, it will probably end to a strange compromise that the user is unlikely to understand.
The dotted line in the page module represents an element that's hidden on the frontend but visible and usable on the backend, it's not the same purpose (and it should also have a better contrast IMO).
An action button is an important interactive element that needs to be as visible as possible. If it's disabled, it's not meant to be used. The best approach is to remove it from the user interface.
The absence of a button in an interface doesn't bother users who don't even know it exists. Users who are used to seeing a button in a certain location, but who no longer see it in some screens, will of course wonder why the button has disappeared. In that case, keeping the space for the missing button is a very good approach and is enought to tell the user : it is not a bug, it is not you loosing memory, the button is not here for some reasons.
On hovering, if the button is forbidden, the cursor already show a forbidden icon indicating the reason. For the other cases, most of the time, the interface and the situation explain easily why the button is missing. For example, the move-up arrow on the first record and the move-down arrow on the last record are logically missing.
So my recommandation would be to follow what is already in place: remove the button but keep the square in it's position and if the button is missing for permission reasons, tell it.
Rachel