Complexity versus NGons!
Let's start with the question first.

Ngons' behavior in game?

It will become Triangle faces that support the ngons vertices, exactly same when you manually triangulate any face in Blender, with some algorithm you don't know or don't care.

So the answer seems to be clear: You need to know when will an Ngons behave as same you want

We could divide the situations in following:

1. The Ngons is flat

Then the algorithm matters, in Blender, most of the ngons can be easily triangulate:



But not all game engine use a good algorithm to deal with this thing, it might be confuse by the strange behavior, or the ngons corners is not always convex. And the UV coordinates might be messed up. You should better try it in the game editor to test it.

2. The Ngons is not flat

If the angle is small, it will be OK with the same issue in flat Ngons. But when the angle is quite big. Don't use that ngons. Quick example:



The face with 2 vertices in different height cause render engine confuse. When manually triangulate it, it might not be the thing you see in view port before.

conclusion

Don't keep ngons when you are not sure what will happen to it. Use CtrlT to make them triangle, especially when it is not a flat plane.

The rest of the things

And your mesh: Separate those detail mesh if doing it will keep the mesh clean

If you are creating the game asset, then you might want to bake those detail to bump and normal map, or even displacement map. And Ngons might not be bad if the ngons is flat, and clear to triangulate. You should try on rough attempt, export the object to game engine and see what will happen.

And also, it is not that evil to separate the mesh that should be one thing in real-life. If the object is craft in that way (traditional way, not CNC or 3D printing), then do the same thing in modeling.

You may need to decrease the vertices on the large object and use details map textures. But for the tiny thing like buttons and grips, make it separated help a lot in your topologies. Look at the mesh in your vendor machine, those checked edges are meaningless.

It won't cause large overhead using multiple mesh toward rendering. In fact, there is no any cost when the vertices is not connected, the shader(program who draw your scene) only care about the number of vertices, faces and of course the textures. On the other hand, a complicated, well constructed mesh will slowdown your shader by the large amount of vertices and geometry. 

But keep in mind: The shader used in these separated meshes should be the same one. Otherwise, this object will be treated as multiple draw calls. That's why it is not recommend to add too much material(shader) to your game object in Unity or other game engine.