Have you tried caching the hair? every time you play the scene, it will recalculate the dynamics of the hair. When your rendering (particularly batch rendering), it uses a different quantity of memory (more or less, depending on a number of factors) then doing a playback in the veiwport, this can change how the hair moves. caching the hair should create a file of all the calculations, so that the hair moves exactly the same every time (it's not doing new calculations with varying quantities of memory each time, the calculations are done and in the file).
Give that a try. Let me know how it works out for you.