how to control particle rotation during its lifetime?
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.