Not really.
Think about how much time you're spending now into trying to figure out why your destructor is not being run vs just re-factoring the code to do:
$storage->detach($client);
$client->cleanup();
My view on the matter is one should for the most part limit destructors to things that are good to do, but don't necessarily need to be done with specific timing/ugency. I rarely ever use a destructor in most of my code. When I do, it's usually for just cleaning up resources (file handles, curl handles, image handles, etc).