If you change the parent of a task directly or with gantt.setParent(), then call gantt.taskUpdate() on it, the task’s children have the same $level. I believe this is a bug, since I get it even when using parent selector example (samples/05_lightbox/08_parent_selector.html). To reproduce it there, create a task that is a few levels down. That is, make a new task, then a task under it, then a task under it. Change the parent of the second-last task made to be no parent or Project #1, and notice that the child of the changed task is indented too much.
Is there a way around this other than recursively setting the $level attribute for subtasks and then updating all of them?