I'm doing something similar with editor-xtd plugin buttons.
For my use case, add the class to the option works, ie:
<field name="icoicon1" type="iconlist" default="0" label="Select an icon" description="">
<option value="0">None Selected</option>
<option value="icon-home" class="icon-home chosen-icon" > icon-home</option>
<option value="icon-user" class="icon-home chosen-icon">icon-user</option>
</field>
For this to work, I had to create my own field type, iconlist, which extends the JFormFieldList class. I copied the getInput method and changed the JHtml::_ calls for select.genericlist to selectclass.genericlist
By the same token, I created my own JHtml class, JHtmlSelectclass which extends JHtmlSelect
The bit of code which fixes everything is to copy the options method from JHtmlSelect and to check to see if the class property is set for an option, if it is set then I add the styling text to the $extra variable so it is added to the option.
Because icon-* classed items are given a fixed width, I also had to apply a second class for each option, the chosen-icon class and use addStyleDeclaration to change the width on all li.chosen-icon fields to 100%.
One small oddity, I also had to copy the genericlist method - even though I am making no changes to it - because when it calls self::options() the code executed is the code from the file where genericlist is defined - ie if it calls the method from the parent definition, then options is called in that file without my custom code.
Otherwise, it works nicely with the chosen dropdown function.