I'm surprised that the message to set the pump control line low is being lost, but I agree that it's the most likely explanation of the problem. I also agree that the on/off timing should be handled on the device, not in MWorks. This would also let you avoid the timing issues associated with Bluetooth LE.
Let me think about the best way to handle this. Be aware that, whatever solution we devise, you will definitely need to install new firmware on the Arduino boards, so you'll need to be able to get them out of their boxes (or at least expose them enough to connect a USB cable).
I've finished implementing my changes in the Firmata firmware and MWorks.
MWorks now supports two new channel types for Firmata devices. The one you'll be most interested in is the digital output pulse channel. This looks a lot like a regular digital output channel. The difference is that you assign durations to the value parameter. Every time you make an assignment, MWorks sends a pulse request to the Firmata device. The device then sets the channel's associated pin high, leaves it on for the specified duration, then resets it to low. By using a pulse output channel, you can both (1) eliminate the need to manually set the pin back to low via MWorks and (2) avoid the timing limitations associated with the BLE connection.
The second new channel type is the digital input pulse channel. As you can probably guess, this channel type watches for pulses on an input pin (i.e the pin going from low to high and back to low) and reports the duration of each pulse. As with output pulse channels, the pulse timing is measured entirely on the Firmata device, and MWorks is notified by a single message when the pulse completes. I added this channel type mostly for symmetry and to aid my own testing. However, it could be useful to you as a means of confirming that juice has been delivered. Specifically, I'm thinking you could connect the juice control output pin to both the juice pump and an input pin on the Firmata board. If you then configure that pin as a pulse input channel, you'll receive measured "juice on" durations in MWorks. If your experiment waits for these, then it can confirm that the pump was on for the expected duration.
To make use of these new channel types, you'll need to install the new Firmata library with MWorks extensions on your boards. I've updated the setup instructions to use this library. (Note that it strictly adds features to the standard Firmata library, so you're free to install it on your boards and use it with older MWorks versions that don't support the new channel types.)
You'll also need an updated MWorks version. To try things out on a Mac, you can use the current nighty build. To get it on your iPad's, you have a couple options. First, I'm hoping to release a new, "official" version of MWorks in the next couple weeks (though I can't make any guarantees on the timing). If you can wait for that, then you can just update MWorks from the App Store once the release is out.
Alternatively, if you want to use the new Firmata features ASAP, I can create an ad hoc distribution for you. This isn't hard, but it requires me to register the device ID for every iPad on which MWorks will be installed. You would need to provide me with the device ID's beforehand. Once I create the ad hoc build, I'd share the IPA file with you via Dropbox. You'd then have to install it using Xcode or Apple Configurator 2, both of which are available from the Mac App Store.