And for others who face this issue, here are more details and how I work-around it.
To me it looks like the issue only occurs when the node you are appending to is the active node for the NestedList whose items are being displayed, i.e. the code above would show problem only when Item2 is the current node whose children are listed in the NestedList.
In my case, I use manual Ajax calls to fetch remote data. So when someone clicks on Item2, NestedList activates it with no children. By the time my data comes back and I append it to Item2, Item2 is active and appending results in the same children being added to one level higher also (visible when you click Back).
To work-around, I first set "leaf" to true on Item2:
So clicking on it does not do anything (but I show a wait icon). When data comes back, I append it to Item2, make it non-leaf:
and finally activate it manually:
This has been fixed as part of the data package cleanup and will be part of the next Touch 2.0 release. Please let us know if you still have issues related to this after the next release. Thanks for the report!
Thanks Tommy for the update. I know I might not receive a reply to this, but you cannot really withhold yourself from asking when can we expect the next release (I would be happy with a tentative idea, I know concrete timelines migh be difficult to predict).