But it’s when you get to making something that’s very technically different - eg. procedurally generating meshes, multithreading, making your own level chunking / streaming, or networking, you need to work at a lower level of functionality. In UE4, you will be fighting the way its set up and have a hard time, because the polish is at the high level. However, Unity’s polish is at the lower level - it’s not fast to make a game like UE4 can, but it’s much faster and easier to do things when you need something much more customised. Want to draw onto a texture in real time using code? No problem; go new Texture2D, and use SetPixel(x,y, colour), or even SetPixels(colour array), where you give it a 1 dimensional color byte array that it will blit to the texture surface SUPER fast, allowing you, for example in my game, generate textures for my landscape chunks so you can see a sort of Google maps effect for the distant terrain based on what landscape items were procedurally generated for those chunks, instead of actually creating all the meshes for those objects when they won’t be needed at such a long distance away.
This has been a pretty long post but I figure it’s a hard pill to swallow after so much of your work has gone into using UE4 so far, you’ve been trying to get answers for a while, and I wanted to make sure I gave you a response that you’d benefit from. But your time spent in UE4 is not time wasted - you learnt a lot about the system. The bottom line is, UE4 and Unity are both extremely good and fill in different niches for indie game developers.