The days I have lost because of this sleep problem make me want to invest a few minutes to add my 2c and perhaps save somebody the same hassle I went through. I haven't read through all the posts so sorry if this brings nothing new to this thread...
I've had the issue on two different machines: a Lenovo T500 running Win7 and a Lenovo T540p running Win8.1. Whilst trying to fix it, I saw several variations of the same basic problem:
- machine won't sleep on lid-close, led to a v. warm notebook in my bag a couple of times
- machine halting abruptly with BSOD, always 6 minutes after trying to send it to sleep
- machine doing a hard shutdown when trying to put it to sleep via the menu.
After a couple of pointless re-installs and getting angry at both Lenovo and Microsoft, I realised that the fault lay with out-of-date drivers and/or automatic Windows Updates or third-party installations causing existing drivers to become 'out-of-date'. This means that software and support updates blindly patching drivers and bits of the OS whenever they feel like it is a big issue. It could also be some time before you restart your machine after that change was made, so the problem only makes itself known later on, making it even more difficult to isolate the cause. My recommendation would be to disable all automatic Windows and machine manufacturer updates. Instead, let them tell you when they think they want to install something and YOU choose what, when and where it gets done. This way, you have the chance to make a backup or set a recovery point beforehand. You could argue that if your machine works, you don't need to change it, whatever anybody tries to tell you (critical security updates usually excepted).
If you are unlucky enough to get the sleep problem, there doesn't seem to be anything else for it other than to wade through the Windows installs and/or manufacturer update logs to find out what changed. I wouldn't necessarily recommend this as a sure-fire fix but one way forward might be (after backing up everything) to just install all of the latest updates and driver versions and hope that this fixes it without breaking anything else.
Example: Back in May, I installed Devolo's dLAN Cockpit software on my 8.1 machine. Exactly the same version worked fine on Win7 as well as on Win8. The sleep problem reappeared, I think I screamed. I uninstalled Cockpit and sleep worked fine again. I stopped screaming. There was no newer Cockpit version so I chose to manage my dLAN using their iPhone App instead. Last month, I reinstalled Win8.1 from scratch after a disk crash, presumably pulling in a few different Windows updates and Lenovo driver versions compared to the last time I'd installed. I held my breath and installed the same version of the Devolo software, it ran fine and I still have no issue with sleep mode. My point being that it all depends on the precise configuration of your machine whenever you add something new to it. Any two configurations will never be exactly the same so a solution that works for one person might not work for another. Moral: Make a note whenever you install anything, to help you remember what might have changed recently if you get the problem.
The time before that, I found that the driver that caused the sleep problem was a driver which I didn't even need. (Tip: install the freely available 'bluescreenview' utility, for me at least, it helped me quickly identify which driver was causing the problem.) I just uninstalled the identified driver and sleep suddenly worked again. So, after backing up everything, check through your drivers, and disable those you know you don't need yet, such as Fingerprint Scanner, built-in SIM card, SMART Card Reader perhaps? Go to 'Uninstall a program' in the Control Panel or 'Start up' in the Task Manager and ruthlessly disable or remove things whose names tell you that you definitely don't need them. Google some of the component names if you're not sure, the component name doesn't always clearly describe what it actually does. As well as curing the sleep problem, this might even speed up your machine a bit, it's frightening to see how much unnecessary stuff is running in the background if you blindly go with an off-the-shelf set-up. Once you're done with all this exorcising, make a final check that your power options actually allow your machine to go sleep, then restart it. If sleep still doesn't work, look at the drivers which are still left and consider replacing them with newer versions. Might work, might not, but there's a fair chance it might.
One thing's for sure, it's difficult to blame anybody for this problem as so many different situations seem to cause it. Ultimately, it's a shame that the OS+platforms have evolved to give us systems where such non-working set-ups can happen so easily. It's also a shame that you need to fiddle about at the driver level in order to get unrelated basic stuff such as sleep mode working properly. People have every right to expect their paid-for machines and software to work properly without having to first roll up their sleeves and poke around inside them.