I think its pretty easy to just do it without engine compiling.
First, you definitely have to fix the normals.
Second you have to bake the normalized Z value of each vertex into the vertex paint and squash the mesh flat before export.
Then, within the material you can multiply the vertex paint by a height factor, plug into the displacement as B and this will grow the grass.
you can use PerInstanceRandom to create variations across meshes, so not all the grass is the same height - but it is the same mesh and the cost is minimal.
So far so normal. We have almost all been doing this for ages. Performs really well and it also allows you to do more things in the future, like easy grass trails.
The next part is to cook up your shading.
You have the vertex paint, which can already help, but you can also offset the brightness (since you said you want it emissive) by the same height parameter you use to grow the grass.
This should - at least thats the theory - allow you to create the same variations you see in the image you shared, where the tip of the blades grow brighter.
The tips will always need to have the same color, so you need to subtract a scaled value of the height from the brightest color possible to shade the mesh.
the cost should be minimal. Probably less then using a dedicated AO texture.
However if you have performance issues or use VR you may want to ditch the custom height parameter and use the vertex paint straight up.