On a project I have used a Spatial as pivot following the target and a camera (child) looking at it, then I just rotate the pivot when I need, the result was similar to the SmoothFollow script of Unity but just with nearly zero code.
But I think the best option could be to use spherical interpolation and quaternions to avoid problems.
Check this Codetuto post about 3D rotation basics in Godot
http://codetuto.com/2016/01/godot-engine-movement-and-rotation-basics/