For anyone in the same position and future reference I'm going to post my own solution here as I ended up not using @isherwood's suggestion. I have not yet figured out completely how to integrate 'select2' into my component, nor is it needed for simple 'combobox' behavior.
This is HTML5 only, no additional script's, extends a plain JFormField.
It will allow free input, as well as select from the static list and filters while typing.
class JFormFieldCftCity extends JFormField {
protected $type = 'CftCity';
public function getInput() {
$db = JFactory::getDbo();
$query = $db->getQuery(true);
$query->select('value As value, name As text');
....
$db->setQuery($query);
$rows = $db->loadObjectList();
$control= '<input id="' . $this->id . '" name="' . $this->name
. '" list="dataSrc-'. $this->id .'" value="' . $this->value
. '" type="text" class="inputbox" />'
. '<datalist id="dataSrc-'. $this->id .'">';
for ($i = 0; $i < count($rows); $i++) {
$control .= "<option value='{$rows[$i]->text}'>{$rows[$i]->text}/option>";
}
$control .= '</datalist>';
return $control;
}