might be an idea, but what about a variant of this at least as an option to consider:
1 using the first process / query that you already have, once you have the set of projects, xog in a project update to variable (A) below to each project that matches the query, using only xog in of project code, project name, and project_A variable.
2 have a hidden variable on the project object (A), eg a lookup, or a boolean if it is a once off.
3 have a second project-based process that starts on project-update and based on variable (A) when it is set to (1), where previously it was set to (0).
4 do what you need to do within this second process, and then reset the project_A variable to (0) again.
of course the above approach does need to take into consideration the performance aspect of having a process firing on a project update event. but that's for you guys to consider.