I guess most of you at least have heard about WakeLocks. Many of you will have experienced them already -- wether knowingly or not. Some may know how to deal with them in general -- but only few know how to deal with the "more complicated candidates".
For those who don't know, though above link leads to an explanation, a short summary: Apps may request a
WAKE_LOCK to keep a device component from "sleeping", so they can perform a task even when the display is turned off. This is very useful in most cases (e.g. keeping the screen on while navigating, keeping WiFi active to stream music) -- but used in the wrong way, it causes your battery to be drained within short term (up to 25% per hour).
Most times it is easy to identify the source (usually a bad behaving app) -- I will show this in an answer below, as it might prove helpful to many users. But what to do if the app which requested the WakeLock exits without releasing it? The Android system will not take care of it. Sure, a reboot would solve the issue -- but it is not always an (desired) option.
So, from a users perspective (I'm not asking about development solutions, but how a user can handle things):
What can be done *by the user* to solve the issue and avoid further battery drain?
I prefer answers not involving root (so all users can benefit from it). However, "rooted solutions" are fully valid and welcome as well.