It sounds like your questions are essentially asking how long it takes the Arduino to execute the commands and for the driver to react to the change in the signal. However, the motor is unlikely to respond to the output that fast, so knowing the intricate timing details is probably not going to solve the problem. Additionally, frequently switching from full-speed in one direction to full-speed in the other direction is likely to cause large current spikes, which as we have already discussed, could cause problems since the VNH5019 shield is underpowered for your motor.
Sorry about the confusion at the end of my last post; I was not saying that 50ms will become 2.5ms, I was referring to your example of 2.5ms. The delay command will likely not accept floating point numbers (e.g. numbers with decimal points), so if you use delay(2.5), it will likely be interpreted as delay(2).
Right now it sounds like you are new to working with microcontrollers and motors, and thus many of your questions do not seem like they would actually be very helpful in putting together your project. If you tell me what the larger project you want to control your motors for is, I might be able to suggest ways to get started and what types of things you will need to research for it.