Actually, our problem doesn't have anything to do with an updater scheduled task, but a scheduled task that gets created to do database backups. Either way though, we'll try using [%USERDOMAIN] and see what effect it has.
I think your problem is that you're using a private property. Private properties don't get preserved from the UI sequence to the execute sequence. Try using a public property (ie. having a name consisting of capital letters). In your case, ENVIRONMENTNAME or something similar.
Trust Microsoft to provide a solution to your problem that doesn't work. The last point in the topic "Preventing Confidential Information from Being Written into the Log File" didn't mention that Debug mode will "ignore" that flag (it only mentions that for "MsiHiddenProperties")...
I'm using a deferred custom action that I'm passing "sensitive" parameters to. I've read in the MSDN docs that it is possible to set a "flag" called "msidbCustomActionTypeHideTarget" by adding 0x2000 or 8192 to the "Type" column of the custom action. Since you're generating type 51 ...
I've managed to fix the faulty project file, which seemed to be caused by a custom dialog. Unfortunately I didn't keep a copy of the project file before I deleted the dialog, so I'm not sure why it wasn't working.
Do you have any idea why a call to MsiOpenProduct or MsiEnumRelatedProducts would fail on a limited account? We've got a specific client site where these calls fail, and I can only assume that it is because of some policy setting. Ideas?
We've developed a workaround for the same problem at our company. It involves having a bootstrap for the MSI which checks what the installed version of the application is, compares it to the version in the new MSI, and if only the build version has been incremented, it uninstalls the old version and ...