Applying the fix in #9 exposed a bug in the PHP SOAP library where SoapClient::__getTypes() does not support extensions in the XMLSchema when used in WSDL mode.
https://bugs.php.net/bug.php?id=45404
Since every object in the WSDL extends sObject, which is where the Id is declared, any record update will fail with "Id not specified in an update call".