I have an interesting observation. My temp gauge (the needle one) has always been behaving normally. It stays at the minimum when cold, and when engine warms up, it gradually reaches the center, and will always sit at dead center.
However, out of curiosity, I checked the digital coolant temperature reading from the diagnostic mode. I found they do not match. When the digital reading reaches 78 degree C, the needle already reached the dead center. Continue driving, the digital reading can reach about 94. But the needle still stays dead center. So it appears to be me these two readings are from different sensors? And there seems to be a block that prevent the needle from swinging further right?
I have changed almost everything recently, except the temperature censor on the lower radiator hose. Would that be the cause?