Create a new, unsaved entity object for the named entity. Mirrors
Metadata.GetEntityObject<T>(entityName, contextUser).
MJ entity name (e.g. MJ: Experiment Sessions)
OptionalcontextUser: UserInforequest user — required on the server for isolation/audit
Factory seam for creating strongly-typed entity objects. Wraps
Metadata.GetEntityObjectin production; tests inject a fake returning in-memory entity stand-ins. Mirrors IEntityFactory from the training module but is re-declared here so the experiment engine doesn't re-export across its own sub-modules.