Using Image Sizes for Custom Post Types outside the Loop

You are doing wrong on this part

the_post_thumbnail($page->ID, "my-non-working-size");

For the_post_thumbnail() you don’t need to pass post ID, you just have to pass size and attr. More Info – the_post_thumbnail()

So try like this the_post_thumbnail("my-non-working-size"); without passing post ID.

Your markup messed up so I’m not sure your actual markup structure. Here is working example and It tested.

<?php
$args = array(
    'post_type'   => 'homeslide'
);
$mypages = get_posts( $args );
?>
<div class="your-class container">
<?php
foreach ( $mypages as $post ) : setup_postdata( $post ); ?>
<div>
    <h2><a href="https://wordpress.stackexchange.com/questions/240606/<?php echo get_the_permalink(); ?>"><?php the_title(); ?></a></h2>
    <div class="entry">
        <?php if ( has_post_thumbnail() ) { ?>
            <div class="col-left">
            <?php the_post_thumbnail( 'my-non-working-size'  ); ?>
            </div>
            <div class="col-right">
            <?php // ?>
            </div>
        <?php
        } // end if has_post_thumbnail();
        the_content(); ?>
    </div>
</div>
<?php endforeach; 
wp_reset_postdata();?>
</div>

And please read this one if you want to need more about get_posts