long time lurker and first time poster

I have a few questions regarding pybullet and how it can be used with the recent C# bindings that make it possible to connect to a Bullet server within the Unity3d game engine, makes for interesting possibilities!
1) If we wanted to simulate collidable terrain, would we have to generate the geometry elsewhere and import it as a mesh to then generate colliders? Would that be extremely slow to simulate in a large environment? Is there a better solution to create collidable terrain with pybullet?
2) Are there any known drawbacks or bottlenecks when using pybullet in terms of performance? I'd presume the simulation aspect is as fast as Bullet can be, as it's on its own server, however concerns are around the time it takes to talk between server/client and whether we'd be better off implementing Bullet directly (which would most likely imply moving away from Unity3d)
3) I'm mostly interested in pybullet because of its multiBody approach, as well as all the machine learning and robotics stuff, which tie in perfectly with a game design prototype we'd like to work on, however I'm wondering if implementing Bullet directly, and not using pybullet, is a more reasonable approach, not clear however how much of the machine learning and AI stuff belongs to pybullet and how much is part of the latest Bullet itself.
Any feedback would be highly appreciated!