Display Child Pages of Custom Post Type Parent Page

The page itself is a custom post type, you can notice this when you open the edit page screen. Your URL will be like this:

www.example.com/wp-admin/edit.php?post_type=page

This means you are on a page post type.

Now about your code, the first condition of your conditional determines if you are on a page post type or not. In the else section, you can also set the post_type as an argument:

$childpages = wp_list_pages( 'post_type=essay&sort_column=menu_order&title_li=&child_of=" . $post->ID . "&echo=0' );

However, you have to have the hierarchical set to true while registering your custom taxonomy:

'hierarchical'=> true,

Take a look at this question, which has some valuable information about this. The related page from the code reference can also be useful.