What UE sorely lacks is a good scripting language. It's clear to me that Tim Sweeney wanted to offer a C#-like experience, but using C++ - IMHO UE failed in any possible way to accomplish that - Epic made a sawed-off shotgun in place of a precision weapon. There are just a gazillion ways to introduce concurrency and memory issues in UE, but most of the time it's "fine" because for a videogame some aspects (like proper memory management, safety, ...) are less important than CPU cycles. A game often behaves as if it's the only application running on a machine, and if it gobbles too much RAM the usual answer the developer gives its users is, "buy more". Thankfully this has been changing in the last few years due to mobile gaming and freemium, which forces companies to target not top-notch machines but cheap laptops.