Get a list of all image sizes that match aspect ratio of original one

I think you should use wp_calculate_image_srcset() for the simple reason that it is very complex (it should not have been just one function in the first place).
Duplicating it might lead to weird side effects in the future when WP is changing the original algorithm.

For the filter problems:

You can pass a third parameter in $size_array. WP will just look into the first two values. If you call the function like this …

wp_calculate_image_srcset( [600, 400, 'wpse_281968'], … )

… you can look for that value when you filter max_srcset_image_width.

add_filter( 'max_srcset_image_width', function( $max, array $sizes ) {

    if ( ! empty ( $sizes[2] ) && 'wpse_281968' === $sizes[2] )
        return PHP_INT_MAX;

    return $max;

}, 10, 20);

Yes, it’s a hack. But it will work until WP is using a third array entry here. Keep an eye on the WP source. 🙂

And then I would filter wp_calculate_image_srcset (with a priority of - PHP_INT_MAX in order to run first) and fetch the sources from that. It’s an array and probably slightly easier to parse than the string that the function is returning.

Side note: Please don’t register callbacks for hooks in a constructor. 🙂