Ahh gotcha, the momentary switch could be an issue depending on your polling time so edge triggered makes the most sense.
It looks like you’d want a WAIT on io high or low command, and then maybe a a read data bits high or low command after that. It wasn’t the most elegant to build.
What we want to do, and we never did build it, was a library that would build up a sequence of commands in a more natural way. The libmpsse library, if this is the same one, issued the mpsse command immediately. What we wanted was to build a command stream and then execute it. It may be there are libraries that do this today.
For your use it may be easy enough to build the command by hand, as its only two op codes, and look at how libmpsse sends them to the FTDI.
I wish I could recall more of the details or show code, it was done for a closed source effort a handful of years ago.
Chris