It does work like it should in Photoshop but you need to be in 32bit. That is ust how a Matte works. Since the pixels on the edge are multiplied by the background color you need to perform this in linear space. If you do this in 16 or 8 bit, even inside AE or Fusion, it would give your the same problems.
The way of doing this in photoshop would just be to creat a new file in 32 bit and do the compositing of the Matte in there. You can work with a Smart object inside your 16bit editing file. I used to do this way back when we still worked with 32bit files in Photoshop.
In fact, if you oppen a 32bit exr in Photoshop that has the Alpha saved inside the same file, EXR IO will aply the alpha and you just need to add the backgroudn and save it.