For anyone else with the same issue, i went with "geting cropping parameters from the widget and apply it to ImageCropFilte in the background" everything works as expected and computation overhead seems to be minimal.
Here is the code to update the filter:
let cropFilter = ...
...
cropFilter.setCroppingPlanes(widget.getWidgetState().getCroppingPlanes().getPlanes());
cropFilter.update();