"The rotations are counterclockwise ....", need more information than that for 3D, are you on the axis looking towards the origin, or at the origin looking along the axis?
Combine Transforms, yes that is exactly what I did ... I could have worked it out with some simple tests but in the end separating them made things easier to understand. I was mainly referring to have these conventions documented.
Alastair ... the triangle patching between the meshes where two line join is a little trickier than just filling the missing bit. For lines at sharp angles you may need to trim protruding corners on the large angle side, and actually one wants to trim to avoid coplanar meshes on the small angle side.
And yes, the standard way in 3D is to use cylinders and spheres, but a bit expensive.
I would prefer to see a true line primitive.