In Queue::Submit(), Queue::Submit2(), and Queue::BindSparse(), we break the caller's submission into many separate submissions. We use a timeline semaphore to identify forward progress through each part of the submission. There could also be an option to wait for idle. This could help identify crashes where we have multiple command buffers in the MAYBE_COMPLETE state. For example this would reduce the crash in issue #201 from 4 possible command buffers to 1.