Iíve been dealing with this devil since I got my í90 300E. Car had wires, plugs and fuel injectors replaced before I got it with 114,000 miles
Hereís what I have done:
Replaced thermostat even though it was less than a year old. (Big difference!) My temp gauge was rarely above 80c before the replacement. Now itís at 87 almost all the time. Old t-stat was not OEM.
Breather hoses might be another cause. I just ordered four replacements.
Tightened up the hose from the top of the motor to the air cleaner. Made a difference as well.
I think itís not one thing wrong Ė itís a number of things that add up to hesitation.