Set vertex location to always be between two other vertices
There is a way to achieve this using three empties and two contraints. However it is only possible to manipulate the vertex positions in Object Mode, in Edit Mode it won't be possible for reasons I'll try to explain at the end of this answer.

The basic setup can be tested in this Blend File here:



As you can see, there are three Emties and a subdivided plane in there. First I created the Empties and snapped them to the vertex locations. Then, I added two Copy Location Object Constraints on the Center Empty. One copies the location of Empty A, the other one empty B. To make the Center Empty really centered between the two, set the Influence Parameter of the second constraint to 0.5



Next, Hook the three vertices to the corresponding Empties. You can do this in Edit Mode using Hook to Selected. Now, if you change the value of the influence slider, the Empty Center slides towards Empty B or A, depending on the value:



If you move A or B, this happens, while the sliding value still works:



Making it dependant on Edit Mode position fails because of the way the Dependency Graph is evaluated. The current DepsGraph still works on an Object level, meaning if you move a vertex in Edit Mode, Blender is informed about a change of the Mesh object. Blender then would trigger an update cycle on it. Now, if that results in something, say an Empty, to be moved, and this Empty again had some kind of relationship via Drivers, Constraints, Vertex Parenting, whatnot, back to the Mesh object, this would mean that the Mesh object has to be updated AGAIN. This is not allowed, as that would trigger another evaluation cycle, and the game would go on forever. It's therefore called a 'Dependency Cycle' and has to be avoided at all cost.