Edit in JSFiddle

var Task = function (options) {
    var _options = options || {};

    var _description = _options.description || "";
    var _assignedTo = _options.assignedTo || "";
    var _duration = _options.duration || 0.0;

    var _tasks = [];

    return {
        description: _description,
        assignedTo: _assignedTo,
        duration: _duration,
        tasks: _tasks
    };
};

var Controller = function () {
    var _tasks = [];

    var initTasks = function () {
        //    4 "Level 1
        _tasks.push(new Task({
            description: "Discuss Product Concept",
            assignedTo: "Jackie Chan; Frodo; Sauroman",
            duration: 4
        }));
        _tasks.push(new Task({
            description: "Create Mockups",
            assignedTo: "Frodo; Gimili;",
            duration: 8
        }));
        _tasks.push(new Task({
            description: "Setup POC environment",
            assignedTo: "Frodo; Gandalf",
            duration: 12
        }));
        _tasks.push(new Task({
            description: "POC Development",
            assignedTo: "Gandalf; Ilsildor; Aragorn",
            duration: 46
        }));

        //    Level 2
        _tasks[1].tasks.push(new Task({
            description: "Paper walk through",
            assignedTo: "Gimili;",
            duration: 6
        }));

        _tasks[1].tasks.push(new Task({
            description: "Convert to HTML",
            assignedTo: "Gimili;",
            duration: 2
        }));

        _tasks[2].tasks.push(new Task({
            description: "Determine SQL or NoSQL database",
            assignedTo: "Gandalf; Frodo",
            duration: 2
        }));

        _tasks[2].tasks.push(new Task({
            description: "Setup Heroku",
            assignedTo: "Gandalf; Frodo",
            duration: 5
        }));

        _tasks[2].tasks.push(new Task({
            description: "Setup Nodejs",
            assignedTo: "Gandalf; Frodo",
            duration: 5
        }));

        _tasks[3].tasks.push(new Task({
            description: "Create Backlog",
            assignedTo: "Ilsildor;",
            duration: 10
        }));

        _tasks[3].tasks.push(new Task({
            description: "TDD Sprint",
            assignedTo: "Aragorn;",
            duration: 10
        }));

        _tasks[3].tasks.push(new Task({
            description: "QA Review",
            assignedTo: "Gandalf;",
            duration: 10
        }));

        //    Level 3 for 'Create Backlog'
         _tasks[3].tasks[0].tasks.push(new Task({
            description: "Confirm users stories",
            assignedTo: "Isildor; Jackie Chan",
            duration: 2}));
        
        _tasks[3].tasks[0].tasks.push(new Task({
            description: "Check Team schedule",
            assignedTo: "Isildor; ",
            duration: 3}));     

        //    Level 3 for 'TDD Sprint'
        _tasks[3].tasks[1].tasks.push(new Task({
            description: "Confirm users stories",
            assignedTo: "Isildor; Jackie Chan",
            duration: 2}));
        
        _tasks[3].tasks[0].tasks.push(new Task({
            description: "Check Team schedule",
            assignedTo: "Isildor; ",
            duration: 3}));        
    };

    return {
        tasks: _tasks,

        initTasks: initTasks
    };
};

$(document).ready(function () {
    var controller = new Controller();
    controller.initTasks();
    
    var projectSource = $("#projectDisplay").html();
    Handlebars.registerPartial( "taskDisplay", $( "#taskDisplay" ).html() );
    
    var template = Handlebars.compile(projectSource);
    var resultHTML = template({tasks: controller.tasks});
    
    $("#projectPlan").html(resultHTML);
    });
<h3>Project Plan</h3>

<div id="projectPlan"></div>

<script id="projectDisplay" type="text/x-handlebars-template">
    <ul class="project-list">
        {{> taskDisplay}}
    </ul>
</script>

<script id="taskDisplay" type="text/x-handlebars-template">
    
    {{#each tasks}}
    <li class="list-item">
        <span class="task-name">{{description}}</span> | Team: {{assignedTo}} | Duration: {{duration}} (hrs)
        {{#if tasks}}
            <ul class="project-list">
            {{> taskDisplay}}
            </ul>
        {{/if}}
    </li>
    {{/each}}
    
</script>
li.list-item{
    margin-top: 4px;
}

span.task-name{
    font-weight: bold;
    font-style: italic;
}

ul.project-list{
    list-style-type: none;
    margin-bottom: 8px;
    margin-left: 12px;
    margin-top: 8px;
    text-decoration: none;        
}