Help with acquireFrame delay in simple capture loop

I am using Leopard Imaging’s IMX377 camera and modified argus_oneshot example to loop and capture full resolution frames that I can pull into OpenCV. The camera captures great pictures, auto intensity seems to do a great job, and the OpenCV image matches the EGL image. The problem is that after a few frame captures with auto exposure turned on, the program bogs down on the

Argus::UniqueObj<EGLStream::Frame> frame(
    iFrameConsumer->acquireFrame(FIVE_SECONDS_IN_NANOSECONDS, &status));

call, and by loop 10, the capture time has gone from 0.3 seconds to 3 seconds, even though the exposure time is still less than 100ms. I’m also not set on this method for full-resolution frame capture and conversion to OpenCV, but have not seen an example of a better way. Below is the output from the modified oneshot program.

loop: 1 time in ms: 317
loop: 2 in ms: 368
loop: 3 in ms: 854
loop: 4 in ms: 719
loop: 5 in ms: 677
loop: 6 in ms: 1071
PowerServiceCore:handleRequests: timePassed = 647
PowerServiceCore:handleRequests: timePassed = 578
loop: 7 in ms: 1937
PowerServiceCore:handleRequests: timePassed = 649
PowerServiceCore:handleRequests: timePassed = 644
PowerServiceCore:handleRequests: timePassed = 665
PowerServiceCore:handleRequests: timePassed = 648
loop: 8 in ms: 2673
PowerServiceCore:handleRequests: timePassed = 665
PowerServiceCore:handleRequests: timePassed = 667
PowerServiceCore:handleRequests: timePassed = 663
PowerServiceCore:handleRequests: timePassed = 666
loop: 9 in ms: 2748
PowerServiceCore:handleRequests: timePassed = 596
PowerServiceCore:handleRequests: timePassed = 665
PowerServiceCore:handleRequests: timePassed = 667
PowerServiceCore:handleRequests: timePassed = 663
PowerServiceCore:handleRequests: timePassed = 574
loop: 10 in ms: 3165

Here is the loop I’m running around the unmodified argus_oneshot code (with some print statements removed)

/////////////////
for(int n=0;n<15;n++){
////////////////////

uint32_t requestId = iSession->capture(request.get());
EXIT_IF_NULL(requestId, "Failed to submit capture request");

/*
 * Acquire a frame generated by the capture request, get the image from the frame
 * and create a .JPG file of the captured image
 */

Argus::UniqueObj<EGLStream::Frame> frame(
    iFrameConsumer->acquireFrame(FIVE_SECONDS_IN_NANOSECONDS, &status));

EGLStream::IFrame *iFrame = Argus::interface_cast<EGLStream::IFrame>(frame);
EXIT_IF_NULL(iFrame, "Failed to get IFrame interface");

EGLStream::Image *image = iFrame->getImage();
EXIT_IF_NULL(image, "Failed to get Image from iFrame->getImage()");

/////////////////
printf(“loop: %i\n”,n);
}
////////////////////

Does this problem happen with default camera too?