Sorry, I misunderstand some of the minor details of your code. To make it up to you, I made a few quick modifications to show what I meant (LabVIEW 7.1). Maybe some of my comments become clearer when looking at the code. 🙂
(I did not have some of your subVIs, so I winged a few things. Seems to work).
Notice that It is not a good idea to use local variables to built arrays, because your generate extra data copies and force a switch to the UI thread. Shift registers are much more efficient.
I use the picture.mouseMove, etc. events instead of the entire VI. I don't think you want to record outside the picture area anyway.
Let me know if you have any questions.