Given that Amazon's customers are inside Amazon's proprietary AWS environment, I think it's unreasonable to expect that an outside company can meaningfully compete inside that environment. In terms of customer preference, AWS customers will _always_ prefer a product offered by Amazon to a similar offering from an outside company. Amazon will always be less expensive and better integrated with other AWS services.
Amazon customer here. We use Elastic's offering because it has a fairly good management layer. That said, there's a lot of room for either player to improve things. One example is user/access management. Kibana tries to be all things to all people and ends up doing very few of them well. If I never had to log into Kibana again it would be a good day.
Perhaps the issue is that Elastic is getting so little from the Amazon product that they resent, essentially, adding features to the Amazon product for little or no return. Elastic noted that, in their experience, some unspecified number of Amazon customers believed the Amazon product was somehow associated with Elastic. Elastic implied this was a result of Amazon's use of their trademark but all of this is hard to verify or quantify.
RedisLabs fought a similar battle with Amazon, they also ended up making changes to their license. I really do think the issue here is the scale of AWS and the very large pool of customers tied to Amazon's offering: there are so many existing and potential customer using AWS that companies like Elastic or RedisLabs feel they can't write those potential customers off. It seems to me that if Amazon was interested in the well being of those customers, they would figure out a way to continue to receive improvements from these projects instead of forking their own versions.