Hmm, you could use "is overlapping" condition and move the object while it is overlapped. If the box seems to jump, be sure to use a TimeDelta multiplier; it will move a tiny fraction each frame then.
Like:
+Player is overlapping Box
Set Player speed to half
Move box at player's speed into player's angle
That would make the player character move slowly when overlapping the box while moving the box. When you stop, the box is moved just enough to stop overlapping and then stops.