Hi @mdm,
Here is the response from a SME 
1-
- XO get the VM metadata through soap api and create the vm /network
- XO use the nbdkit + nbdkit-vddk package , connecting to each disk
- XO connect through NBD to nbdkit
- XO list the allocated blocks
- XO create the disk
- XO read the block and import the data into the disk (though a vhd or qcow2 stream depending on the size)
2- though XO. There is a lot of disk transform occuring here
3- not anymore, it was too brittle, especially on when the disk are locked or not. Also it was not scaling too well
4- see 3- +
vddk transfer is overwhelmly faster that previous access through http, is compatible with VSAN and don't lock the disks.
(+ also see https://xen-orchestra.com/blog/xen-orchestra-5-110/ section "VMware to Vates (V2V)" where we made key improvements)