The InstallPackage.UpdateFiles() method creates a WITEMP folder and puts some into it.
Various operations, locking and releasing these files, are performed in the method.
However at InstallPackage.cs:542, a Record is created then used but not closed.
The msi file is updated properly but a cab file (in my case) is still locked (until the end of the process) after a InstallPackage.UpdateFiles() call.
As a result, the WITEMP folder can not be deleted and calling methods such as ExtractFiles or UpdateFiles specifying the same msi and WorkingDirectory is not possible anymore.
After adding the Close() and recompiling WindowsInstaller.Package (and its dependancies), the problem seems to be solved.