Custom Walker for Walker_Nav_Menu

Old question, but you can override the </li> in the Walker’s end_el() function (see wp-includes/class-walker-nav-menu.php); in your case, something like:

public function end_el( &$output, $item, $depth = 0, $args = array() ) {
    if ( isset( $args->item_spacing ) && 'discard' === $args->item_spacing ) {
        $n = '';
    } else {
        $n = "\n";
    }
    if ( $depth == 0 ) {
        $output .= "</li>{$n}";
    } else {
        $output .= "{$n}";
    }
}