The conclusion I came to from that is you have at least one very poor app on your phone. Something is obviously not working correctly, reducing your battery life and generally slowing down your system.
The fact you specifically mentioned it hangs when you turn on/off mobile data pretty much backs this up. Android apps listen for events, and change of data connection is one of those events. So, without knowing too much info, I would guess at the following:
Some app has a listener out for data connection change, probably the same app that is clogging up your system and slowing everything down. When its listener sees the change it connection, I assume it runs some poorly developed process causing the "hang".
Best bet is to find the offensive app and remove it from your system. I certainly wouldn't want an app developed by some guy who doesn't know what he's doing on my phone!