@yshui what should happen if e.g. multiple Start() commands are submitted with different positions? Right now I think we are going to queue them all and execute one by one, but maybe it should drop pending ones and use the most recent? It's just something that occurred to me, don't know if it's closely related to this fix.