Coolers work well but they are definitely lossy - doesn't matter how you dice it. Since they don't heat, they slowly lose temperature. Several easy techniques can be used to minimize the lossy factor, it just comes down to what you are willing and want to do. I've implemented a few on my round cooler (5 gallon) that keep me within about ±1°F of my mash temp. Here's what I do:
-I mash in a room that is always around 70F (kitchen)
-I've insulated my cooler lid with expanding spray foam insulation (great stuff brand)
-Reserve 1 quart of my strike water for a mid-mash, temperature refresher (should be at/near boiling at midway through mash when adding)
-Preheat my strike water by 10°F; add to cooler and seal; wait 10-15 minutes to come down to desired strike temp
-After doughing in, use syran/plastic wrap over the top of cooler before cranking on the lid (acts as an airtight gasket of sorts)
I believe the last point (syran/plastic wrap) is a big one to maintaining temperature in my MLT. You can test how easily heat can be lost by performing an easy test. With a completely empty MLT, close your lid like normal; open the ball valve; now blow in the ball valve so you're blowing air into the MLT. If you can blow into the MLT then you have air leakage at the lid; if you cannot blow in the MLT then you have a good seal. If you find that you have an air leak then try the syran/plastic wrap technique. Simply lay over two strips (in a '+' sign) of plastic wrap over the top of the MLT, making sure to overlap the cooler threads; then crank on your lid again; and try the blowing test again.
The mid-mash refresher is done because coolers are lossy vessels. No matter what you do, you will always lose temperature and never gain inside a cooler when mashing. By refreshing the temperature at about the midpoint ensures that your variance will be minimal (usually 1-2°F).
Food for thought!