TurnEntity turns relative to its current position but it STILL uses the global axis not a 'local' axis.
Don't know where you got that idea from but its totally incorrect. Don't mix the rotateentity and turnentity commands and it should work fine as in the example by brams32.