I would organise the process of finding a handler a bit different.
First I would say the system UI window should always show a button that leads the user to Preware as last option (that is optically different from the other options). Best would be if Preware knows about handlers and can search for a verb. But that probably requires changes in App packaging. We should discuss that anyway.
Then I would always show the UI window as long as there is no preferred handler for a verb + MIME type combination. If there is no handler at all in the system, the system UI window should display a note above the Preware button that there is no handler and the user will need additional software. This takes some error-handling work from the developers and presents the user with a defined error message that she might know at some point in time and know how to react to it. If every app needs to do that on it's own, that will more likely cause confusion (think of apps that don't do error handling at all).
Also if there is only one handler, it should still show the UI and not just run the handler. It is quite possible that there you are handlers that are very generic and register for a few verbs and a lot of MIME types (or even all?). But probably you have some cases where those generic handlers are not a good option. So I think the user might better decide if the one handler in the system is the right one or not. And if it is not a good handler for the situation the user is notified about the situation and gets an easy option to search for better handlers.
Consider the things that can go wrong in the one handler case. If the handler is the right one, the user has to select it as preferred only once. If we make that easy and use two buttons for "use always" and "use only this time" where the first one saves the selected handler as preferred that is a very easy task. On the other hand, if there is just a generic handler that does a bad job, the user has to open Preware, search for a better handler, install it, run the action again and now select the better handler (probably as preferred). That involves quite a lot not intuitive actions and a deep knowledge about the underlying system. That is a bad thing. Very bad. It will seem for the user that the system tries to do things automatically but gets it wrong and he has to figure out to repair that.
One thing that we will probably need: A way to revert the preferred handler selection for a verb (and MIME type?).