Wenn du
DragSource.Execute(False)
(oder nur
Execute) aufrufst, wird das DragDrop synchron gestartet und gibt im Result das Ergebnis der Operation zurück. Damit das
VCL-Dragging nicht weiter dazwischen funkt, solltest du das über einen Aufruf von
Abort
am Ende des StartDrag-Events beenden.
Das sollte insbesondere auch beim asynchronen Aufruf erfolgen.