I have got this working now by adding a few lines of code to the dummy app to force it to include all the add-on packages. However it is circuitous trying to figure out what packages are needed and how to force their inclusion. The mcc command produces a file called requiredMCRProducts.txt which lists a bunch of packages by a 5 digit code, which you can then use to get the name of the package, which might (or might not) give you a hint as to which functions you are calling that need it:
It looks like you can use those codes to make a 'bare bones' MCR installer, though I am still trying to wrap my head around that one:
What would be good is if the error generated by matlab said a bit more than invalid runtime - eg the name of the missing package and the function that is calling it.