After watching this video about a month ago, I decided to revive the code from the dustbin of the blender-addons-contrib repo and clean it up a bit. The result is available here and here. The circular-staircase option now works properly, and all the generated meshes have their normals the right way round. Also everything is parented to an empty, for easy repositioning etc after creation.
Thank you.