They appear to be working from different starting positions, while moving the same amount. That is the angle from start to end would appear to be the same but blender moves from parallel to the ground down 45 degrees while three.js starts from straight up and moves down 45 degrees.
This also happens to be the difference between rest pose and pose 1. So blender is starting from rest pose then moves up 90 degrees to start at pose 1 then moves down 45 degrees.
three.js is instead starting at pose 1 and moving up 90 degrees to start the animation then moves down 45 degrees.
I'm not familiar with three.js but what if you set frame 1 to be the rest pose and have three.js animate from frame 2-41 or can you tell three.js to use a different pose to define rest.