BTW, the answer to the original question was that
input = UI.inputbox(@prompts, @defaults, @list, "Select Attribute Target")
returns an array of values because typically the inputbox would present more than 1 option. In my case there was only one input or prompt so when I put input into
set_result = Sketchup.active_model.set_attribute("dynamic_attributes", input, att_string.to_s )
I was actually sending in an array and thus setting a new key in the format ["whatever user put into inputbox"]. Even .to_s did not seem to help...
set_result = Sketchup.active_model.set_attribute("dynamic_attributes", input.to_s, att_string.to_s )
The answer was to get the first item in the array like so:
set_result = Sketchup.active_model.set_attribute("dynamic_attributes", input[0], att_string.to_s )