Core pump: If a new pump is already scheduled by the time we get to the end of the current core pump, schedule a call to `request` using wx.CallAfter rather than calling `request` directly, otherwise pumps could be recursive if the newly scheduled pump was marked as immediate.