I have a feature that has been upgraded a couple of times to add new fields to a content type. The feature started as version 1.0.0.0 and was deployed and activated at the site collection level.

As part of ongoing maintenance, we upgraded the feature to 1.1.0.0 to add some fields to a content type, and again later to 1.2.0.0 to add fields to another content type. Each time, after running Update-SPSolution on the containing WSP, I used Chris O'Brien's Feature Upgrade Kit to query for features at a certain scope that require an upgrade, and then upgrade the feature.

Worked like a charm ...

The problem I'm having is that when I create a new site collection from scratch, none of the historical upgrade actions I made to that feature are being applied.

I understand that Feature upgrades are decoupled from solution deployment and updates, however, when I check with the Feature Upgrade Kit, it tells me that no feature instances at the scope require an upgrade. Also, I can see (in SharePoint Manager) that the feature version is actually 1.2.0.0.

The point here is that there are many possible upgrade scenarios, and in some cases performing historical upgrades is not desired. Instead of managing only upgrade actions, you should also keep up-to-date the main version of your feature, i.e. you should include the FieldRef elements into the content type XML. This will not interfere with UpgradeActions, because if you're activating the feature from scratch, it is intended to be the latest version.