Can you explain further? It's not clear as is how this solves the problem.
I implemented with Draggable and DragTarget, and I didnt see any issues related to user experience; I think if one have several lists, instead of one, one may get synchronization-lag related useState (not sure).
Anyhow; it is easier though to just work with one list, instead of several.
If one place over a target, one could possibly place over oneself; one solve this by making what is being dragged invisible:
childWhenDragging: const SizedBox.shrink(),
By using
Transform.translate(...)
one can adjust space to indicate where something is being placed.
What is being dragged is shown in
feedback: (...)
There is no need for offsett of height, or anything, it just looks on overlap it seems.