I have the same problem, but i have replaced the thermostat 4 times in 2 years.
And it's always the same afterwards. And the temp gauge corresponds to how hot the heater is too. And i've replaced the heater tap as well.
(Crappy mechanic broke it, overtightening the hose clip)
Personally, i reckon there's too much coolant using the water pump by-pass. Rather than stay in the block and get warm, it actually flows around, making it takes too bloody long to get warm.
All i can think of doing it putting some kind of restricter on the by-pass line.
And it shuldn't cause any problems, as the thermostat would just open up like it's supposed to, once it senses too much heat.
Anyone tried something like that?