How long to operate GPs depends on what the manufacturer says!
My cars (VW TDIs), truck (12v Cummins) and Kioti automatically controls how long the GPs (or in the case of the Cummins, heater grid) is energized to full. I know that in my VWs the GPs will continue to glow post ignition to help smoothen out things; not sure of the others.
My B7800 is purely mechanically operated. I don't remember the recommended time for operating the GPs on it; I just keep keying it until it starts up. On my generator (alsways seem to have a digital copy of its manuals around me), which is an early 90s Onan with a Kubota engine, the Operator's Manual says 10 to 30 seconds. Cycle time pretty much depends on how much current the GPs are pulling (and, of course, the rating on the wiring!).
Lack of combustion heat leads to the harder starts. More heat is required. Either coolant heater or more GP function. If this were my issue I'd be double-checking the GPs before anything else; and, I'd look at what the manual says for how long one can operate the GPs (and operate on the longer side). Every diesel is going to be a bit rough when firing up when its cold: my Kioti is really great at starting and running, but even it will be a bit less so just after a first start in the cold [and I'm not really in all that cold of a climate]). And as has also been noted, oil viscosity can also affect things: you want the fasted spin of the crank as you can get; oil rated for lower temps will provide that. Oh, and that also brings up the notion of the state of one's starter! I've pulled, cleaned and lubed many starters and that will go a long way to ensuring they operate as best as possible: ones operating in a clutched environment are susceptible to clutch dust and get a bit stiff. Good battery, good starter, good GPs and ample GP operation is one's best bet.
Lastly, weak injection pumps, bad fuel lines/filter connections and or injectors will also make starting tougher. But this starts getting away from the low-hanging fruit stuff!