Depending on the arrangement of the selected vertices you will end up with different results and levels of success.
G+G is a constrained version of SHIFT+V, even when using the task bar options “c” to toggle clamp on/off it restricts direction.
To my knowledge blender doesn’t allow individual “vertex normal” coordinate constraints when moving vertices, it averages the normal direction between selected vertices, this appears to cause erratic results when selecting vertices that do not share common normal vectors, this to me is the underlying issue, if you could constrain based on individual vertex normals instead of taking an average we could slide them across surfaces (not edges) diagonally.
On a cylinder you can select vertices about 3/8th of the circumference and edge slide without issue,
Vertices that sit on the edge of non-planar faces split the angle,
i.e 90 degrees edges have normals at 45 degrees, when the normal direction of individual vertices gets close to 90 degrees issues appear.
Currently to my understanding the best option is “SHIFT+V” along one edge direction then “G+G” alone the other, with both you can use numerical entry, eg “SHIFT+V, 0.5” and “G+G, .5”
I could show you a picture, but you know