Seems I was wrong with that, you can change the start order of VMs in a vApp.
Quick example: simple vApp with 3 VMs in there. The default Start Order

With the following snippet I cam change that to 2 start groups
$vAppName = 'vApp1'
$vapp = Get-VApp -Name $vAppName
$vmOrder = @(
@{
Group = 1
VM = @('VM2','VM3')
},
@{
Group = 2
VM = @('VM1')
}
)
$spec = New-Object VMware.Vim.VAppConfigSpec
$spec.EntityConfig = $vapp.ExtensionData.VAppConfig.EntityConfig
foreach($group in $vmOrder){
$spec.EntityConfig | where{$group.VM -contains $_.Tag} | %{
$_.StartOrder = $group.Group
}
}
$vapp.ExtensionData.UpdateVAppConfig($spec)
And the start order is now exactly as we specified in $vmOrder
