SERVER-49435, we observed an instance of an exception-throwing function being called from a getAsync continuation. getAsync continuations are effectively noexcept (there is no "correct" context in which to handle an async-exception, so the process is terminated).
Because that ticket was causing a hot BF, we elected to simply fix the issue minimally by converting the relevant exception to a status within the function called in getAsync. But we already have found at least one other instance of this problem that has not yet been caught in tests: the call to continueExhaustRequest in a getAsync here may throw via its call to setTimer.
As much of the code in this class is run in getAsync continuations, and we have already encountered this twice, we should
1) Fix the issue described in the last paragraph
2) Audit all the getAsync continuations in this file to make sure they don't call into functions that may throw.