I haven't tried this, but it should work: While you're in the Loop, for each of the 2nd-tier posts (i.e., direct children, which you are currently able to reach) capture the current post ID like so
$level2_parent_ID = $post->ID;
Then use WP_Query to start a query within the query, using $sub_parent_ID as the value for post_parent. This should pull up children of the children.
As an example, to continue where you left off...
$the_query = new WP_Query( $args );
// The Loop
if ( $the_query->have_posts() ) {
while ( $the_query->have_posts() ) {
$the_query->the_post();
echo '<li>' . get_the_title() . '</li>';
$level2_parent_ID = $post->ID;
$level2_args = array(
'post_type' => 'page',
'posts_per_page' => 1,
'post_parent' => $level2_parent_ID,
'meta_query' => array(
array(
'key' => 'sticky',
'value' => '1',
'compare' => '=='
)
)
);
$level2_query = new WP_Query($level2_args);
// The Loop-within-a-loop
if ( $level2_query->have_posts() ) {
while ( $level2_query->have_posts() ) {
$level2_query->the_post();
echo '<li>' . get_the_title() . '</li>';
}
}
//plus whatever else you want to do in the outer loop
}
}
/* Restore original Post Data */
wp_reset_postdata();