Ok, I haven't really thought this through, but I'm throwing out the idea anyway

Why not make it so that when you get rooted, you must "fight the root" to break it. Give the various roots a certain number of hitpoints according to level, and when you break it down to 0, you're free again.