Get previous and next custom post by custom field

You should be able to set the orderby value to meta_value_datetime. More info at WordPress: https://developer.wordpress.org/reference/classes/wp_query/#order-orderby-parameters

Try this:

$args = array(
        'post_type'      => 'event',
        'post_status'    => 'publish',
        'meta_key'       => '_start_at',
        'meta_type'      => 'DATETIME',
        'orderby'        => 'meta_value_datetime',
        'order'          => 'ASC',
);
$query = new WP_Query( $args );

Maybe there’s an issue with the date value formatting. You could also try removing the meta_type:

$args = array(
        'post_type'      => 'event',
        'post_status'    => 'publish',
        'meta_key'       => '_start_at',
        'orderby'        => 'meta_value',
        'order'          => 'ASC',
);
$query = new WP_Query( $args );