Instead of place the text inside the button, maybe you could keep the button text constant and assign the user text to the button's tip strip? The only other way I see to keep the button size and allow user assinged text is to try smaller and smaller font sizes until the text fits but at some point you're liable to end up with text that's not readable and you're back to restricting the text that's visible.