Avoid using a global State mutex. Use a mutex for each tree
Currently we have a mutex for all the state but the trees are not written/read equally (different frequencies given different operations on the upper layers).
Let's put a mutex on each tree.
As an example. While writing in the process tree the reads in the apptree should not be blocked under certain conditions.