From what I understand of you application, I doubt you use significantly (if any) more resources by always sending the 2D array. If you haven't already, look through the Managing Performance and Memory topic under Fundamentals in the Labview Help. I pasted a relevant section below. How you handle the array could make a difference too, which is explained in the VI Memory Usage section of the help topic mentioned above.
From Labview Help -> Fundamentals -> Managing Performance and Memory -> Concepts -> VI Execution Speed:
In addition, overhead for the AI Acquire Waveform VI is roughly the same as the overhead for a single call to the AI Sample Channel VI, even though it is transferring much more data.