Specifically for your case you have two options out of the box:
The Azure Pack Gallery Image (roll your own) or the SCVMM Service Template.
Both of these already have a UI, PowerShell support (therefore workflow), and allow the collection an injection of variables to customize the deployment.
I built this for a scaled out XenApp installation and found Service Templates to be the most mature today. Especially if you are supporting scale-out.
If it is only one self contained machine and you drink the Azure Pack cool-aid - then that fits better.
In the end, someone has to build all of the automation.
I don't subscribe to using SMA or workflows because you would need to open some backdoor to the machine in order to make it all happen. With Service templates and gallery images all the scripting executes within the VM and in the end, I as the owner
of the physical infrastructure have no login for that machine. The customer knows the local admin password and any other custom user accounts - and I have zero access to the machine.
An external workflow engine driving the deployment and customization cannot always claim this, as they must control the machine after customization happens to handle the applications after the OS is deployed.