Setting fix bone length
In the edit mode in the N panel you have boxes, where you can enter the exact locations for the bone tail and its head. In your case you can align the bone to any axis, then enter desired offset of the tail (or the head). Then you can change the bone rotation (R) without affecting its scale, and not moving its head or tail separately. If you need a bunch of bones with exact length you can set the length for one large bone, then subdivide it with needed numbers of subdivisions, or you can use the duplicate command (Shift+D) for the bone which length is already set. To snap bones to each other, you can select entire bone (not just head or tail), and use snapping to 3D cursor (Shift+S).