These are a pain. Ideally you would have access to the devs and they could tell you what elements appear/disappear that you can wait for. In this case, I'm assuming you don't have access to them.
What I try to do is trigger the action, quickly right-click and choose Inspect element, and see what elements are popping up. If you are lucky, the dialog, etc. stays up and it's easy to find. In cases like this, they happen so briefly that it makes it really hard. What I did was to do the actions above to the point where I was triggering it on/off and watching the DOM for elements to appear/disappear. I finally got in the right place and found this using screencap and OCR
<div class="modal in" id="loading-modal" data-backdrop data-keyboard="false" tabindex="-1" role= "dialog" aria-hidden="true" style="z-index: 1100; top: 475px; display: block; padding-right: 17px;" modal-dialog">
<div> id="loading-page-backdrop" class="in"></div>
There are a couple of DIVs there, one of them is very likely the element you are looking for and both have IDs so they should be easy to get ahold of and wait for them to be invisible.
// wait for modal to disappear
new WebDriverWait(driver, 10).until(ExpectedConditions.invisibilityOfElementLocated(By.id("loading-modal")));
// do stuff
Even if these aren't the elements you are looking for, you should be able to use this technique to find the ones you want.
BTW, I write automation in Java and I've never needed to scroll the window... it just does it for me. Have you tried the scenario without the scroll code?