I would say to try using a database trigger for workflow 3. You cannot guess the number of items in the list of workflow 2 and cannot estimate the time workflow 2 will take to make changes on all items in the list, so using a database trigger rather than a recursive workflow looks like a better option here.