Is that purely due to not reaching operating temperature? How long do you think it should take to get to normal operating temp with that kind of outside temperature?
As you know your engine works by burning properly mixed fuel and air and combusting it, and that air and fuel (in your case) come from a carburetor. Fuel burns best in a fine mist (atomized). What happens when it's cold, is that the fuel condenses in the carb, intake manifold, etc. and doesn't become a fine mist. It's much sloppier and more like droplets of fuel than a tiny mist. It becomes hard to control the mixture correctly and harder to burn. The choke, as you know, makes it run a little richer, which helps it to run in these conditions.
That's why it'll take a while in the cold. The engine may warm up, but it's the carb and intake that need to warm up in order for the bike to run smoothly. That's why some small airplanes have 'carb heaters' to keep the fuel atomizing at high (cold) altitudes! (Also to prevent the carbs from freezing!)
Not much you can do about it other than run with the choke as you have been until it warms up. But, doing so doesn't hurt anything other than your gas mileage!
I've wondered though, how hard it would be to retrofit the 900's fuel injection system to the 800. The engines are very similar, as I understand it the 900 is a bored out (or maybe just lengthened stroke or something?) and updated 800. I wonder if the intake, throttle body (which contains the fuel injectors) and related components could be modified to fit the 800. I dunno, would be tremendously expensive and time consuming... BUT... it would be a solution! Then it'd fire right up in the winter good to go! (The fuel is under pressure and shot through an injector in this case, so it stays atomized)