If you use SetProperty and set the 'Sequence' to 'execute' the action is always skipped. In the log is this message "Skipping action due to msidbCustomActionTypeFirstSequence option".
From the documentation for msidbCustomActionTypeFirstSequence it says "Execute no more than once if present in both sequence tables. Always skips action in execute sequence if UI sequence has run. No effect in UI sequence. The action is not required to be present or run in the UI sequence to be skipped in the execute sequence. Not affected by install service registration."
The key bit is "The action is not required to be present or run in the UI sequence to be skipped in the execute sequence." from this I read that the action will always be skipped if this option is set and the action is only in the execute sequence.
This option is set in File Compiler.cs function ParseSetPropertyElement().
I would say that msidbCustomActionTypeFirstSequence should not be set for either mode of operation or may optional. I feel it is more likely to cause unexpected side effects than a simple type 51 action (which is what the documentation say is creates, it is actually a type 307).
This Tracker item was closed automatically by the system. It was
previously set to a Pending status, and the original submitter
did not respond within 21 days (the time period specified by
the administrator of this Tracker).