Alright, found the problem. In this particular test case, with the compositor thread running much faster (1000x) than the client thread, the list current_buffer_users was regularly growing to several thousand elements in size on every frame. This is obviously unnecessary and explains why lp:~vanvugt/mir/simplify-BufferQueue is in fact a /correct/ fix for the bug :)
Alright, found the problem. In this particular test case, with the compositor thread running much faster (1000x) than the client thread, the list current_ buffer_ users was regularly growing to several thousand elements in size on every frame. This is obviously unnecessary and explains why lp:~vanvugt/mir/simplify-BufferQueue is in fact a /correct/ fix for the bug :)