Yeah, in this case refreshCallbackMethod is what you'll need to use. It is a bit clumsy, but it should work. We use it in the Z-Wave plugin for the inclusion process UI and the optimize UI. Here are some more details about how to use it.
Not currently. For dynamic progress the best you can do is show/hide static text controls (using visibleBindingId / visibleBindingValue). One big limitation (which I've run into but haven't improved yet) is you cannot change what the text is, so you must have multiple controls for every possible progress message you want then hide/show them appropriately.