"Is there a standard way of lazily instantiating the innerViewModel such that it is created only when it's view becomes visible?"
The solution is to do just that. Now I don't actually create an instance of innerViewModel until the IsVisible property is first set to true. This means that the Content of the ContentPresenter on the mainView is bound to null for most of the time, but this does not seem to be a problem.