We were currently dealing with this terrible global variable in FileSystem/ZipFile.cs previously, but other parts of the code such as DownloadPackageLogic were creating these files too, and may not have executed the static ctors that fixed the encoding yet.
The Download class cancels asynchronously, which means callers must handle cancellation inside the completion event, and not after requesting cancellation.