So... in case anyone comes across this thread, here's what I wound up with.
To add items to the options dialog, a module creates a class or classes that export IOptionsProvider.
IOptionsProvider is very simplistic it only requires a key to uniquely identify itself, A method that returns the option items for the tree view, and a method to get the data for an option item based on a key.
I have an options service that is responsible for showing the dialog. It looks for any modules that export IOptionsProvider and builds the hierarchical view model for the tree view using the get option items method of the IOptionsProvider.
The option items contain an exported key for the View that will display on the right, and a provider and data key for it's data.
When the selection in the tree view changes normal region navigation is called using a URI built from the option item. It took a bit to get that working the
solution is in this thread.
The ViewModel for the right hand control that is navigated to, makes a call to the options service, using the keys in the URI to obtain the data it needs. It all seems to be working great so far. And the simplicity of just adding an IOptionsProvider
class to a module in order to implement this will be nice!
Thanks for your help on this Miguel, I think I like the way it turned out.