The logic on every plan's line is: Check current ISO (if there is need - change it), Check current Quality (if there is need - change it), Check current Exposure (if there is need - change it). On every change APT needs confirmation from the camera that the operation is finished before continue with the next step. So your actions with camera buttons send the needed confirmation and allow APT to continue.
The test version will isolate Exposure and Quality as problems and we will know if ISO is problematic too...
I'll send it to your mail later today or tomorrow morning (EU time
)
APT is written on C++, it is my favorite
But the main reason to use it is that Canon's library is written on the same language and it is easier to be used from C++ than from C# or VB.NET