It’s non-trivial and a minefield.
NCLC tagging has become more available and common, which has helped. It doesn’t actually transform your colors, but is more precise in telling the player what encoding was used. So the player can pick the right transform between what it reads and what it knows (assumes) the display to be set to. This all came about, because in its infinite wisdom Apple and Quicktime made some quirky assumption in absence of better information.
One of the biggest issues though is the Quicktime player. I never use it. Though you may find that many of your clients use it as it’s the default on any Macbook. And there are other factors that go into it - even if properly tagged, very often laptops and desktops aren’t set to useful color profiles, are often way to bright (Rec709 / BT1886 is supposed to be 100nits, yet most desktops are set at 120-160 by default, and none of that is considering the viewing environment conditions of dark office vs bright coffee shop vs backyard table).
Also, what you are comparing is just the gamma curve. The color space also includes the color primaries. Now sRGB and Rec709 share the same primaries, but when you build custom transforms you need to make sure you’re maintaining any primary transforms (though that would show up as color shift, not contrast changes). The third leg of the color space stool is white point, but it’s the same for everything we used except P3.
Add to the pain point and when you look at ACES transforms there are two flavors of Rec709, the device (i.e. camera) and the display flavor. One is intended to be used on camera footage, while the other one is intended for material that has already gone through a color pipeline and tone mapping for a display. So if you import Rec709 footage from a Sony camera - use the input transform for Rec709. If you import something rendered from AfterEffects, use the display transform for Rec709.
I’m not answering your question, because there’s so many variables that it’s hard to tell what’s driving your specific discrepancy.
All that said, I would evaluate colors not on QuickTime, but a proper QC player (I use Telestream Switch, which has many other functions, including DeckLink output and a swipe overlay where you can compare before/after of two renders), and I would upload it to Frame IO and see how it looks there.
Also, even if you don’t have a reference monitor - a separate computer monitor that was calibrated with an XRite to Rec709 and is driven via the broadcast output of Flame (can be HDMI, but with interface, so it’s not subject to MacOS color management) is worthwhile. That way you at least know your file is what you want it to look like. That solves half of the problem when your client complains, and you can focus on their playback scenario rather than having two unknowns.