This is the way we did it - our aim was to create a circular profile picture, so we forced a square crop on upload - you should be able to do something similar for a logo upload.
The size you define is going to determine the dimensions of the displayed end result, so for my example, if a user were to crop a rectangle, the end result is still going to be rendered as a square, warping the image. To avoid this, you should probably have in mind what type of logo would work best for the area you're considering in the theme, whether it's a badge type logo, a rectangular logo, an amorphous logo, etc., and keep the flex settings to 'false' - the last thing any user wants is for their logo to end up displaying wonky.
Anyhow, I hope you find this helpful!
$wp_customize->add_setting( 'theme_profile_picture', array(
'transport' => 'refresh',
'sanitize_callback' => 'theme_sanitize_profile_picture',
'title' => __('Profile Picture', 'theme'),
'priority' => 10,
$wp_customize->add_control( new WP_Customize_Cropped_Image_Control( $wp_customize, 'theme_profile_picture', array(
'label' => __( 'Upload Profile Picture', 'theme' ),
'section' => 'title_tagline',
'settings' => 'theme_profile_picture',
'flex_width' => false, // Allow any width, making the specified value recommended. False by default.
'flex_height' => false,
'width' => 250,
'height' => 250,
) ) );