FIX: switch to 4G by turning off LTE
I can say with a high level of confidence that if your having this issue it's not the iPhones fault. This is almost definitely an IVR setup/development issue.
I develop and integrate IVR systems and have had this issue personally. It's an issue with how the IVR is handling the touch tone, its not an issue with the iPhone. We had this issue on our IVR systems and resolved it, but since you can't control the IVR systems here's what you can do to get it working: turn off LTE and use 4G when calling into an IVR that doesn't recognize your DTMF's.
I was able to record the DTMF's that the IVR received from the iPhone (note: this does not mean the iPhone created this, it just means that by the time it got to our system it was represented as seen; there can be intermediary systems that affect this).
Results:
When using and iPhone on ATT LTE the touch tones look PERFECT. I mean perfect. They are to the spec, exactly. I've never seen any other touch tone come through so perfect. They were exactly the length required, were spaced out exactly as needed, etc etc. When switching to 4G the perfect touch tones degraded but looked like any other ones we get on the system. The touch tones on LTE did not work, 4G did.
In our case the touch tones were being sent to a speech recognizer that then sends back DTMFs if it detects them. Once we changed our setup to recognize OOB touch tones it worked (it didn't have to send them to the speech recognizer, the driver that we have recognized them correctly and we just changed the driver to send us the touch tones instead of relying on the speech recognizer). There are reasons for having the IVR setup this way and in some cases the fix won't be as simple as it was in ours.