Hi Nick,
Let's jump in:
1. You can do "conditional logic", as mentioned by Bruno earlier in this
thread, i.e. have fields, or even entire sections, be shown or hidden
depending on some condition that can take into account the answers the users
provided to other fields in the form.
2. You can have data captured by your forms submitted to a service you
provide when users click the "Submit" button. In fact you can highly
customize what the "Submit" button, or any other button, does. Buttons run
"processes", which are like simple programs that runs actions and can have
things like conditionals, error recovery. As part of a process, you can have
the data sent to a service you provide.
https://doc.orbeon.com/form-runner/advanced/buttons-and-processes/
3. You can generate text dynamically based on answers in the form, using a
template syntax. This can be done for text showing in the form, labels of
fields, emails, and more.
https://doc.orbeon.com/form-builder/advanced/template-syntax
4. For the "custom data" you want to "inject and send with the submitted
form", where would that data come from?
5. Orbeon Forms can save your form definition and form data in your MySQL,
PostgreSQL, Oracle, SQL Server, or DB2 database.
6. I think there are some "good support/customization facilities", but feel
free to ask about specifics if you'd like to explore this more.