I was screwing around with this a bit.
I attached a silicon temp sensor to bottom of canister. Clamped it. Silicone to hold it and let dry. Remove clamp and put silicone where the clamp was:

Then I boiled 2 cups of water. Took temp data with Labjack module:

The stove burned for 2:40 starting at 0:00 on the plot. It took about 1 minute before the temperature propagated across the steel canister and sensor. The temp kept dropping for 2 minutes after I turned off the stove.
I estimated that the butane inside dropped 7 F from the initial temperature. There is a minimum temperature that the butane will boil at, which I guess is 22 F for the fuel in my canisters. As long as the outside temp is 7 F higher than this (29 F) this should work just fine.
I did this at about 35.5 F. This is the coldest it’s been in 2016.
I repeated for a 1/4 full canister:

I estimated the butane dropped 12 F. Assuming my 22 F minimum, then the coldest this should operate at is 34 F. You can see the temperature had increased to 36 F. It slowed down a little – took 3:00 to boil.
This is what happens as it gets close to the minimum, it slows down. As it gets close to the minimum, then it evaporates less, so it takes longer to boil.
A full canister would only drop about 4 F, so the minimum temperature I could operate at would be about 26 F. Plus the propane in the mix would help. I recently operated a full canister at 22 F and it slowed way down, but was still usable.
This is a strategy to operate an upright canister stove at cold temps – use a full canister.
Possibly a more expensive canister would have a lower minimum temperature.