I think I found the issue. It seems to be ok to do with in the Post event. It was my own code, which was odd.
A vSphere machine is available from PRE-MachineProvisioned onwards.
I wouldn't use POST-MachineActivated if the code you need to run is critical to the build and needs to be blocking/failure state.
it was my code which was faulty. It works in both states. It was a bash script at had to execute as final part of my Linux installation, e.g users, postfix etc.