It should be possible to create a shell without opening it. It's also not clear that the andBlock methods are a good idea. We should look at where it is used in our code, and see how many would be better as just regular open.
We could decrease the API size if all of the openOnXX instead became just createOn(). Then you could call open when/if you wanted.