BUT in your example it still points to a switch problem in the probe.
Sorry TP but I don't understand your conclusion - A G1 command neither knows nor cares about the existance of a probe - or shouldn't do anyway.
Also now that I've littered my code with debugging traps and printouts I'm getting indications of all sorts of wierdness. Seems to me there are serious sync problems between the mach and vb threads and possibly even some corruption of the vb workspace by mach. Art has indicated he's aware of timing issues in the interaction between mach's implementation of G31 and vb. I'm beginning to think this is only the half of it.

Seems to me that the reason the bed o' nails approach is possibly more successful is more to do with the fact that g-code is static i.e. pre-created and is then run in Mach as per normal. With 2.5D probing the g-code has to be dynamic, i.e. created on the fly as it works round the profile. Clearly in this case the interaction between Mach and VB is more critical. Certainly more critical than Mach/vb seems to be capable of at the moment. Shame.

Whether V2.57 will solve the issue I don't know - any update yet?