And we have a winner

Turns out the 'turret rotating' signal, Input2, was not latching fast enough, so the 'While' command was not taking effect becuase there was not enough delay between the output signalling and the while. In essence it was skipping right on and doing further 'clicks' while the turret was still in motion. I also added a MachMsg as an initial step, as lack of air pressure also drives the Input1 active, so it reminds me to connect air pressure if I ask for a toolchange without air connected. Since I turn off the air in my garage, this is pretty handy.
Again, thanks for alll the help. Here is the final working code from my M6Start.m1s file, for anyone's reference. Again this is a 4-position rotary toolpost on a lathe which holds multiple tools, and I am numbering my tools sequentially counterclockwise around the holder (as you look at it with bird's eye view). Holder rotates clockwise.
'M6Start.m1s
If IsActive(Input2) Then
MachMsg ("Connect Air Pressure to Turret!!","Turret Index Warning",MachMsgTypeOK)
End If
selectedTool = GetSelectedTool()
currentTool = GetCurrentTool()
currentFace = (currentTool - 1) Mod 4
targetFace = (selectedTool - 1) Mod 4
'rotate turret required number of "clicks"
For click = 1 To (targetFace - currentFace + 4) Mod 4 'rotate accounting for rollover
ActivateSignal(Output2) 'activate momentary command to rotate
Sleep (500)
DeActivateSignal(Output2) 'deactivate momentary command and wait for movement signal
Sleep (1500)
While IsActive(Input2) 'wait for turret to stop
Sleep (100)
Wend
Next
SetCurrentTool selectedTool 'not forgetting to update to the new tool