Waitvbox is a project mainly written in C++, it's free.
VBoxHeadless launcher.
Launch VBoxHeadless with putty. Savestate when putty closed.
waitvbox
An example:
waitvbox "C:Program FilesOracleVirtualBox" ubuntu "C:Program Filesputtyputty.exe" 192.168.137.2
cl -Os waitvbox.cpp