Similar background. Our approach was to avoid becoming deeply entrenched with an all-things-for-all-people-game-engine. Instead we use an abstracted in-house framework and include discrete functionality per-project. We then consume best in class libraries as they are needed (be they 2D, 3D, audio, particles, tweens, skeletel, services etc) - or develop proprietary functionality if required / preferred. Likewise tooling is often discrete and relates to each library rather than an all-in-one. All that being said, we started doing this long before there were really solid all-in-one choices - today a company-level choice would also consider recruitment and sales keywords.