I like a "low mass" heat source. Things like snake rocks tend to take a while to heat up and cool down. So they hit the high mark, your controller turns it off, but since the rock stays piping hot for a while, your beer temp keeps rising, causing the cold side to kick on. Now the cooler is trying to chill the rock, and you get an overkill underkill cycle going.
I prefer a heat pad. Costs about $15 on Amazon. Quickly heats and cools off quickly. If you go this route make sure you get one that does not have the automatic cutoff safety thing, intended to protect people from falling asleep on it. With a large heat pad I can maintain 90f in my 17cf freezer so long as my shop stays above 40f. Sometimes in the winter my shop is 0f, or lower, and I can easily hold 65f.
Air circulation could be nice, but sometimes I open ferment... I just use dry-z-air or damp rid to control moisture