I wrote new code that is simpler than some old code. It also doesn't exactly work correctly. These things are not mutually exclusive.
I wrote the old code with an assumption I have had to put to bed. It worked fine until 2 NPCs tried to use the same smart object, and one had to pause until the other finished. That set off a chain of events which led to the paused one getting into a very slow infinite loop after using the smart object it had waited for.
My rewrite needs a rewrite.
At least, I have them halfway behaving themselves through the claiming and freeing process.
UE5's smart object code was written before it was well-defined, then altered through the 5.X series of Unreal Engine releases. Examples may or may not match the code you are using.
Ryan Laley has excellent YouTube videos describing all aspects of both UE4 and UE5. Highly recommended. His videos about smart objects are correct.
I'm also getting acquainted with UE5 state machines. So far, I prefer them to behavior trees. Once this stuff is working correctly, I've tasked myself with adding combat code so the workers know what to do when attacked.