Hello Fupicat,
If I understood you correctly, you want the Label to resize automatically, depending on the "total" size of the text.
I found a solution that allows you to do that, while having a NinePatchRect resizing with the label node, and also with the possibility to define a minimum size for said Label.
The new layout is the following
The things the VBoxContainer does is automatically resize the Label vertically to its smallest possible size. In your case, what you want that vertical size to be is, roughly, the result of max(minLabelSize,labelSizeWithCurrentText).
If you want your NinePatchRect node to always fit the entirety of the Label, don't forget to click on Layout (when NinePatchRect is selected, this is a tab right above the viewport) and select "FullRect".
The only values that I modified were: checking "Autowrap" on the Label, setting "Align" to "Center", and also defining a Minimum Size for the Label (in Control/Rect/Min Size).
I hope this helps you
Edit : Re-reading your post, I don't think there's a built-in method in Godot to "cut" big words in smaller words. You will have to do that via code.