VBoxHeadless by itself isn't all that handy for appliance type applications, since it doesn't detach itself from the shell it was started in automatically.
IMO, a better way of accomplishing this is VBoxManage startvm <VM Name> --type vrdp
VBoxManage will then start the VM and detach the process from the shell. The one downside to this method is that some errors from VBoxHeadless will end up getting suppressed, so if the VM fails to start, you may need to start it directly with VBoxHeadless to see what the issue is.
If you're using the OSE version of VBox (which lacks vrdp support), you can also use --type headless (since 3.0.0)
IMO, a better way of accomplishing this is VBoxManage startvm <VM Name> --type vrdp
VBoxManage will then start the VM and detach the process from the shell. The one downside to this method is that some errors from VBoxHeadless will end up getting suppressed, so if the VM fails to start, you may need to start it directly with VBoxHeadless to see what the issue is.
If you're using the OSE version of VBox (which lacks vrdp support), you can also use --type headless (since 3.0.0)