The logic in PluginMainThreadScheduler is clearly missing a reset of m_callPending, which results in it only waking up the main thread the first time it is used. It needs m_callPending=false inserting just before m_queueMutex.unlock() on line 102 of PluginMainThreadScheduler.cpp.
*** This bug has been marked as a duplicate of 21587 ***