Calls to addProcess could create duplicate phantom processes until the job is reloaded

- The list of active processes is a set, the list of processes is a set
- There is a mismatch in symmantics between the no-repeats logic of sets and the repeats fo list
- Therefore when adding to the processes list we must ensure that we replace existing entries
- Also need to add synchronization to those field accesses to ensure that we have consistent access