Ah, I see what is happening now. Your events conflict with the Drag & Drop behavior. DnD automatically handles mouse clicks and starts dragging the object. Your events move the object with the DnD behavior on a click. So now your events depend precisely on the order of whether the event or the behavior receives the click first:
If the event receives the click first, it moves the object under the mouse. Then DnD receives it second, sees the object is under the mouse, and starts dragging it.
If DnD receives the click first, it notices the object is not under the mouse, so ignores the click and does not start dragging the object. Then the event receives the click and moves the object under the mouse, but it's too late, DnD has already decided not to drag it.
You should not depend on the order of events like this, it's undefined by design. Basically, don't create events that conflict with the automatic handling done by behaviors. Rearranging the objects in the object bar can change the order in which events are received, which you shouldn't depend on anyway. Workaround: don't use a behavior, just code the events to move the object yourself. Closing as won't fix.