I wonder if `pop()` might be better here. I'm not sure if the following is possible in the presence of the global interpreter lock, but I'm imagining that something like this might happen:

```
# Thread 1
buf = self._async_buffers[key]  # let's call this reference "old list"
self._buffers[key].append(buf[0])
buf = buf[1:]  # buf is now a reference to a new list
# Now switch contexts to thread 2
# Thread 2
self._async_buffers[key].append(new_track) # Thread 2, appends to "old list" via the _async_buffers dict
# Now switch back to Thread 1
self._async_buffers[key] = buf  # new_track is gone
```

If you used `pop(0)` instead of the slice, you'd be using the same reference and you might not have this issue. You may want to consider using a lock here.