Well, I started having a similar problem about two weeks ago, only it's not my ti, it's my truck ('94 Toyota 2WD).
I'm 99% sure that the problem is with the starter, since when the problem first began, it was just that it would take a few cranks to get the engine to turn over. (It's not the battery, I just put a new Diehard in there about 2-3 months ago, and it's got a full charge.) The problem is definitely worse when the temperature is lower. Mid-day, the engine will often turn over without incident. Morning or night, though, it's a different story. (FYI, I'm in Virginia.)
The last few days, when it's been uncooperative, it's really been a bear. When it finally turns over, the engine will shudder and make some unhappy noises, and the check engine light comes on, but this goes away after a minute or so.
I'm no automotive expert, but my theory is that the hesitating starter is screwing with the engine timing, which is causing the knocking coming from my engine. After a few moments, the timing works itself out, and the problem goes away (and my check engine light turns off).
I know that with BMWs, if you start the car, only let it run for a moment (such as to move it from the garage to the driveway), and then turn the engine off again, the next time you start the car it may idle a little rough for a few moments. From what I've read in the past, this is a self-correcting timing issue. (I've experienced it first-hand in my M3.)
Given all of that, I'd go out on a limb and say that you probably need a new starter, and that the engine knocking is sort of a cause-effect thing from the thrown-off timing.
I've finally received the new starter for my truck, so after I replace the starter on Saturday, hopefully the problem will disappear. I'll post the results.
Unfortunately I don't know squat about solenoids, so I don't understand why the cold affects them in that way. (If anyone wants to enlighten me, I'm all ears.)