Is there any effective way of locking a built-in property of a @tool Control?

Hi all,
I would like to lock some of the built-in properties of a Control derived node. f.e: The size of a node been defined by the size of a texture.

It seems that override the _set function is what it is supposed to be used so I can check and set or overwrite any change. But it is not called consistently [0]. f.e: 2D tab gizmos changes do not call their property setter.

I got it working with an intrincated structure of signal connections and notifications. But its so ugly, error-prone, and reiterative that it becomes useless, much less for sharing.

Have you dealed with this issue? Any advice?
Thanks in advance.

[0] _set() with @tool does not work when property is edited from 2D/3D tab · Issue #87355 · godotengine/godot · GitHub