I think we are making this more complicated then it needs to be...  just call delete on the provider_api which should handle the stop as well.

provider_api_clients.delete_vm(vm_name)