Is it possible to change slugs’ default behaviour?

Test you the following filter work for you:

function wpse245094_fist_duplicate_slug( $slug, $post_ID, $post_status, $post_type, $post_parent, $original_slug ) {

    // slug had to change, we must have a duplicate
    if ( $original_slug !== $slug ) {

        // try to replace `-2` with `-es`
        $new_slug = preg_replace( '#-2$#', '-es', $slug );

        if ( $new_slug !== $slug ) {
            // if a replacement occurred ensure uniqueness again. 
            $slug = wp_unique_post_slug( $new_slug, $post_ID, $post_status, $post_type, $post_parent );
        }
    }
}

add_filter( 'wp_unique_post_slug', 'wpse245094_fist_duplicate_slug', 10, 6 );

It will only try to match -2 in the end of slug, only if it changed after WP checks.