I correctly transposed your logic for transforms. It looks like we’re 90% of the way there (and I’m starting to doubt it’s possible to get 100% of the way there).
I’ve changed “Follow” to “Engagement Locked”, and swapped the outputs of the branch.
The widget is movable while “Engagement Locked” is disabled, however it cannot be moved at all when it is enabled. It seems locking the world location also locks the widget. Not sure if there’s a way around that.