Considering performance; is the level creation tools inside Unreal only used for quickly laying out the area, and then you bring in your own custom assets from an external 3D package, or can you use those primitives for the final production build?
As an example; say I build a room with one door and two windows, and then assign textures to the walls, ceiling and floor. Could I use that as a base and add my own custom meshes such as window/door trim, base-boards, etc. Or is it suggested to build that entire room (walls, floor, ceiling) in a 3D package and use that instead?
Any thoughts would be appreciated!
You can use the editor to block out a level using brushes. It’s handy to do that directly in the editor so you can playtest quickly. Once your happy with the general volumes you can convert these brushes to static meshes and export them to a modelling app to flesh them out more, bake high poly details to low poly meshes if needed, create UV’s, texture maps and so on.
If you are using the BSP tools within UE4 to create objects, make sure you go into the details panel and “Convert to Static Mesh” each of the items when they are finished. If you do not do , you will run into major performance issues, so be sure to do after the model is complete, Doing makes the object un-editable in UE4, so be sure you are ready to accept that… If you need to make changes after you have converted it, you will need to export the model out and edit it in a 3d mesh editor program like blender or 3dsMax. A common technique is to “block out” the rough shape with the tools in UE4, then export it out and add more details in your 3d program, then export it back to UE4 again and apply the materials.
method works well, but has obvious limitations, the level of detail you can achieve is much lower than if you made everything inside of a 3d program. is why most of us use the other tools, but if you are happy with the results, then there is no reason not to do inside of the editor (but they must be converted to static meshes in the production build for the reasons detailed above).
I had no idea that you can convert them to static meshes, thanks for that! Do they also keep the UV’s when doing so?
Yes, it should act exactly the same as it did before you converted it.
I am sure you will see a large increase in performance after converting them, I did a test where I got 80fps before doing anything, then created a BSP sphere and increased it’s tessellation to the (level 5), and my performance dropped to 40fps, then I converted it into a static mesh, and I was right back to 80fps again. They are very performance hungry when they are still editable! 
It will keep the uv’s but you will have to create a 2nd uv channel + lightmap -> otherwise you will get light errors