Not sure I understand correctly what you're trying to achieve but what about using directly a line and shade it ? Problem with this method however is you have to calculate/scale the line width.
Joining some idea comps.
Regarding the drag and drop thing I never made something like that.
Here is a beta composition but the problem is instead of being able to insert it between other strings, it only moves the selected string on top or bottom of the other strings.
Also, when a string is selected, it slightly moves some pixels when clicked.
Maybe someone will be able to hep you more on this part.
Also, you'll need another custom node for this composition : Karl Henkel's Parabox nodes.
Download it and install the "co.parabox.nodes.vuonode" custom node which is located in the BIN folder of the download in your Vuo user module folder like explained for the Magneson nodes & relaunch Vuo.
For the width of a string, with this version of Vuo it's probably better to calculate the amount of characters in each string like you started yes. The next version of Vuo should allow text layers to scale and their sizes will probably be easier to measure.
So calculating the amount of characters and the next step is to sort the list, I tried using the dictionary built-in nodes but I'm getting a bug (joining the composition for the team, no output from the dictionary) but using Martinus Magneson's amazing custom list nodes, it's pretty easy !
So you need to install these nodes in order to use the composition I'm sending you, so for that :