I avoid things like this by orienting my first object to the world, and then every other object is oriented to the first object locally. This helps me avoid gaps between geometry pretty well. Also, the Point to Point snap function is a lifesaver.