1. Acquire the context before initializing renderer when using async gpu
2. Do not try present when renderer is nullptr
This has some potential race condition but is also what we do in qt
3. Synchronize before serializing video core (WaitForProcessing)
For this, the GPU thread is changed to pop commands *after* processing.
4. Avoid waiting on future fences
Such events can exist in core timing queue when deserializing.