Upon my experiments according to my sync concept shared with you, the sync turns out to obtain a satisfying result, validated by the camera-imu-calibration provided by
Kalibr. However, it's a little degraded than before when I added my manual time adaptation between imu and image messages upon a less accurate description of latency. I guess that might be caused by your timestamping method which adopts the end of exposure and the time instant when image is fully captured, since the mid-exposure time should be a better choice as sync-timestamp of image. Hence, it would be much appreciated that you take that into consideration, for eg, add an interface that allows us users to have mid-exposure time at disposal.