Dust bunny
I had similar symptoms except iStat showed my fans working but with the CPU fan showing at 3200rpm when idle speed should be closer to 1200rpm. At least that showed me that the fans were spinning. Also, the GPU sensors were quite high at around 65 degrees celcius. It would sleep more quickly as I intensified the duty load (ran 6 videos at the same time). So I needed to find out why my CPU fan idle speed and GPU temps were so high.
I took it apart and found it caked with dust bunnies everywhere. Those things really do breed like rabbits! So I removed the casing and LCD and used a compressor to blow out the fans and heat sinks. With the bunnies removed, the CPU fan now idles at 1200rpm and my GPU sensors are in the 38-40 degree range. No more sleeping. 🙂