Yes late to the game but for the sake of completness, all of the above can be done with a Waveform Chart except setting history legth at run time.
See this thread on the dark-side for an example.
http://forums.ni.com/t5/LabVIEW/How-can-I-update-the-x-axis-to-match-a-time-reading-in-a/m-p/160205#M95365
The trick is to only have a single value in the "Y" array and the chart will plot the point determined by the t0 of the wf data type. updates do not have to be periodic but you can NOT plot backwards in time (all to's must be increains or the chart resets).
Ben