If I understand well, the issue is you don’t have enough frame/time left (in the full clip) to fade the weight for 1 second.
I’m not sure it work in practice, but here is a speculative method:
you can try creating a .subclip dynamically, instead of using weights fading. It’s similar to your blender suggestion, but in realtime.
When the even happen:
-get the current frame
-depending current frame, pick normal or reverse animation (longest path or not, your choice)
-create a .subclip from current frame to start or end (both reach ~360°)
-apply normal or reverse play on the subclip with a playtime of 1 second.
you may still miss a smooth change of direction when object return to 360°
because it’s not fading from the main clip anymore