Read the above post.
The gist for ISystem is that to have Burst-compiled callbacks OnCreate/OnUpdate/etc., you just need to add BurstCompile on the method.
For any normal Burst entry points (static methods, as instance methods aren’t supported without special things like job Execute methods and ISystem callbacks that do ultimately use static methods to wrap your instance methods), you need the attribute on both the method and the containing type. BurstCompile needs to be on the ISystem for normal Burst methods, just like any other type. The difference is that BurstCompile is added automatically behind the scenes when the system source generator creates code to support SystemAPI and entity job usages. If the system generator doesn’t produce output for the system (from the system not needing source generation), BurstCompile needs to be manually added to the type.