Please see the circle of updated cache post in your plugin:
1) you have an action:
add_action( 'save_post', [ $caching, 'save_post' ], 999, 3 );
2) in this action if post is updated call:
if ( $update ) {
$this->delete_related_caches( $post_id, $post->post_type );
} else {
$this->delete_object_type_caches( $post->post_type );
}
3) in the delete_related_caches method first checklist of for update and set new cleanup schedule:
if ( 0 !== $affected_rows && false !== $affected_rows ) {
$this->schedule_cleanup();
}
4) your schedule_cleanup method set a new single event for 5 minutes:
wp_schedule_single_event( time() + 5 * MINUTE_IN_SECONDS, 'wp_rest_cache_cleanup_deleted_caches' );
This means that the delete operation will have to wait until this time.
I tested several times and there is this problem.
Please Check.