You'd need to adjust the behaviour of caching slightly. On before controller action executing by DonutCaching you need to check whether the request came from CMS admin or from the frontend:
var editMode = HttpContext.Kentico().PageBuilder().EditMode || HttpContext.Kentico().Preview().Enabled;
If it's coming from the edit mode, you need to disable donut caching. This will solve your issue.