Update StateAccessToken to allow shared reading of the state. The process of invalidating the state will wait for all readers to complete their work. This implies that access to the state must not modify the state.
Use a worker thread to perform the graph rendering.