first of all thank you for the compliment. Positive feedback is always a good reason to go on with the development.
In fact you are right concerning the blocking. If a device is used, both, the device and the channels(s) are blocked. I did this for security reasons. It is clear that in a multi threading environment a resource can not be used by two threads at the same time, so channel blocking is a must have to avoid crashing or getting undefined results. The reason why I also use device blocking is just to make absolutely sure to guarantee that this can not happen. If you need to control two (or more) physical devices (means devices that are present as hardware) at the same time, the work around is exactly what you did. Create a device in V-Control for every physical device and apply a channel to this device. It is not so hard for me to change this behavior and give up device blocking but: V-Control is used in many shows and events where stability is more important than user friendly.
Concerning your GUI issue: I’m not sure if I understand that (sorry, no native english speaker). A running cuelist should highlight the current item only if the cuelist is visible (selected). If another cuelist is selected, there should be no focus change. In a script there is no focus change at all. And: it should not be possible to edit a running task, neither cuelist or script. If you can do this it is a bug that I will solve asap. Can you attach your project file to help me understand what you are doing?
The undo function is unfortunately still missing. It is on the to do list, but at this time I can not say when it is implemented.