Force Custom Post Type Status to ‘Future’ on first Save or Publish

wp_insert_post_data filters post data just before it is inserted into the database. Documentation

add_filter('wp_insert_post_data', 'schedule_post_on_publish', '99');

function schedule_post_on_publish($data) {

      $post_type = "event"; // Replace event with exact slug of your custom post type

      if ( $data['post_type'] == $post_type AND $data['post_status'] == 'publish' ) {

           $data['post_status'] = 'future';
       }

       return $data;
}

This may help.