Thanks for your help. The problem was actually resolved by an NI engineer after a day or so investigation. It seems that the 6120 (and 6150) have an extremely large internal buffer and in it default state the output will not update until the buffer is full so this buffer size had to be changed (please see engineers full response below if you are interested)
"I think I have found the root of the problem. The 6115 and the 6120 both
have a 30,000,000 sample buffer for output. By default all of this buffer
is used for generation. This means that new data written out takes a long
time to propergate through the buffer and actually be output. To overcome
this you can either, write data less often, output al lot faster or
decrease the buffer size.
To write data less often you just have to call the write function less, if
you are outputting at 50KS/s and writing 5000 samples with each write, put
software timing in the loop to make sure you only write 10 times a second.
To decrease the buffer size you will need to set the value of two
properties. These properties can be accessed from the DAQmx Buffer property
node as detailed in the attached picture. You will have to set them to much
smaller values and can set the onboard buffer to zero so you do not store
any smaples on the card."
I set both properties to the number of samples in my ouput waveform and everything works fine.