ObjectManager-Performance question in `XDataModule.Events.OnEntityXXX`-Events

That looks like a better solution indeed.

You simply create (and later destroy) a TObjectManager instance, and the connection you can get directly from the pool. The pool is thread-safe and is global, so just grab a reference to it from the middleware and use it, that's all.

Regarding your code, I don't see any issue.
Where is lTokenChecker variable declared? I don't see it in your call to XDataModule.Events.OnEntityGet.Subscribe.

You can get a hacked instance of object manager and check how many objects you have in there. Inspect it for each token check to see if the number of objects in the manager is increasing somehow. That's for now the main explanation I'd have for the decreasing in performance over time.