First of all, the in-editor introduction combined with the current level of documentation and available tutorials made an excellent first impression on me.
Hotloading, data inheritance, asset redirectors + fixups, graceful handling of missing classes/properties/objects, MapError checking hooks, separate map layers that can be checked out independently, Lightmass+Swarm agents, and debug viewing of blueprints and behavior trees during in-editor testing. As many have already said, the tools are 80% of what an engine is about and these tools have benefited from the 10+ years of iterations. Option to "Play from here" when testing within the editor.
BATTLE-TESTED MATURE FEATURE SET WITH SOURCE CODE INCLUDED:
Huge benefits of Epic actually using their own dogfood to ship games on the platforms with TRC/Cert requirements! Localization, Input support, Top tier animation pipeline (AnimGraphs/Blends/Sockets) with fine root motion toggleability and easy playing of animation montages from sources outside the character's SkeletalMeshComponent, Sequencer, post-processing/physics/audio volumes, audio occlusion, MovementModes already supporting crouch/swimming/flying, DamageTypes/TakeDamage, Camera, Multiplayer out of the box (able to set numplayers in editor) with easy 3rd person mirroring for 1st person characters, UI, Behavior Trees that support the ability to swap out BehaviorTreeData objects during runtime, faction-aware Perception system, Blackboard, and Blueprints that scale from letting you spaghetti yourself in the foot to using them merely as archetypes that do not handle tick events.
C++ with engine/editor source code that includes comments and well-named functions/variables, no interpreted script layer that allows full use of Visual Studio’s debugging toolset such as “setting the instruction pointer while stepping”, Seamless integration with editor blueprint/animgraph access, Reflection, inheritance-based architecture that makes it possible to create gameside systems without engine mods, asynchronous (multithreaded?) raycasts/shapecasts/sweeps, self-adjusting TArrays that make every effort to maintain contiguous address spaces while accommodating dynamic growth, fundamental Pawn/Controller separation, well-designed component system, and overall a lot of smart microdecisions I’ve noticed within the architecture such as flyweight design pattern for behavior trees. Last but not least, I appreciate that the engine code does not define its own FSM template because I prefer to use my own home-grown deferred FSM for managing things like body, high-level AI, and global game states. Same with generic object pools.
Basically, what this all comes down to is us being way ahead of the initial schedule that I originally planned based on estimates from previous engine experiences, including Unreal 3.