How to change the default orderby from “Date” to e.g. “Title” or my custom column in content type records list in admin?

pre_get_posts the right hook you need to use.

function CPT_set_default_orderby($q){
    global $pagenow, $typenow;
    if( is_admin() && 'edit.php' == $pagenow && 'post' == $typenow && !isset($_GET['orderby']) ){

        // to order by title
        $q->set('orderby', 'title');

        // to orderby with meta key
        $q->set('orderby', 'meta_key');
        $q->set('meta_key', 'expiration');
    }
}
add_action('pre_get_posts', 'CPT_set_default_orderby');