It's fairly straight forward.1. Create a webhook that triggers on project creation, and filter by convertedOpTaskEntryDate != blank, as well as any other filter you'd like2. Update project name
So to make sure I understand, you're saying when a request is converted into a project, you want the project name to change to something like {Project Reference Number} {Original Project Name}? If so, I've done similar things previously, yes.
No, the UID and reference number both are inviolate, for all objects. As long as you are working with the same object, both of those values will always be the same.
You have to modify a project with the UID of the project, but you can for sure search for a project with the reference number, just add referenceNumber={your reference number} to your query string, replacing {your reference number} with the target reference number.
I don't believe that you can modify an existing approval process, although I've never tried so I could be wrong. You can for sure use Fusion to build out a new approval process, however, and you could build that out to fit your needs.
There is a similar problem with using a linked folder in AEM: Assets. I'm not sure this will necessarily apply with Box just because I haven't done it with Box before, but the way I got around it with Assets was by just not using the linked folder setup, and using Fusion to send the file to AEM dire...
In addition to what cverges-medallia posted, are you always creating the same tasks? If so, you could just create a template that looks like you want, and then apply your template.