And one last thing - provide the second picture in your OP post with magnification NEAREST and minification NEAREST (no filtering). It can happen that your object space normals texure resulution is way too small to spectate such an atomic space on the mesh (in other words, triangle covers few pixels of texture). This is very unlikely though! But this issue is interesting. From my own experience, I can spectate a nose peak of a character without any edges, when object space normals are used (not tangenting ones of course)
I've made simple terrain normals into texture rendering function(without tanget and bitangent calculations). And picture had became good.
So you are using object space normals. With those you do not have this artifact, but if you interpolate light direction vector in pixel shader, you do.
It is a known problem of that direction vectors do not linearily interpolate good on a triangle (on edges only 2 verticies donate interpolation, what can issue in a too big jump if third interpolator was away from zero attribute). But position vectors interpolate good. So if you will compute light vector in pixel function from interpolated object space position and object space light position, your artefact should dissappear.