USB host PTP Eos camera icw shutter release

I'm trying to make a timelapse controller with exposure ramping.

I (want to) make use of ISO ramping icw bulbramping.

Bulbramping using the USB host/PTP protocol is not the way to go so have to combine the two methods.

1/ Changing the camera's ISO via USB host (PTP) - this works perfectly 2/ Capture a shot by using a release cable in camer's bulb or manual mode - this works perfectly also

As soon as I capture a shot and change the ISO after that it looks like the 'set ISO' command is dropped and ignored, though. The camera's doesn't return a PTP error code...

After spending hours to find out what is going on I finally discovered after triggering the camera is too busy (by storing the picture?) to accept or process the PTP command. After adding a delay (about 700ms) after triggering the camera it all seems to work.

I simplified the code to a minimum to illustrate what it is about.

I'm using the "USB Host Shield 2.0" and "PTP_2.0-master" libraries

  uint8_t delayMs= 50;

        // trigger the shutter for 50ms to let the camera make a shot  (camera is in  'M'anual mode)
    digitalHigh(BULB_CABLE_PORT);
    delay(50);
    digitalLow(BULB_CABLE_PORT);

        // give it a moment
    delay( delayMs );

        // change the camera's ISO to ISO 800
        uint16_t rc= Eos.SetProperty(EOS_DPC_Iso, (uint16_t)iso800);
        
        if ( rc != RC_OK ) {
           // show message
           }

The ISO is actually changed in the camera once the delayMs has a value of appx 700 ms. or longer.

Is this normal behaviour? The delay of 700ms is pretty long and just a kind of 'an experimental value' and is probably camera dependant.

Does someone recognize this or has a better way to deal with this behaviour?