how to control particle rotation during its lifetime? In Blender Internal, there's an option in the Particle System Texture panel to let the texture affect the Size of the particle. But nothing for the Rotation.
A gradient texture can be used this way to control the size of a particle as it is spawned, lives and when it dies.
Having a particle rotate when it is spawned but stop rotating after awhile, or slow down and speed up the rotation speed (of each individual particle, not the whole system) doesn't seem to be possible because of the above reason.

Is there any other way to do this?
You can use the Animation Nodes plugin to create your own particle system instances and use a node setup to control their rotation. 



control_particle_rotation.blend is a simple example which sets particle rotation to their age. You can create more complex rotation control with more nodes. You can find an AN download on github. You can find discussion and AN examples in the blender artists AN thread.