WP Customizer JS Template not saving color field

You are using content_template which is used for rendering Underscore JS template which means you will also have to create your own corresponding control in javascript using api.Control.extend({ and do the handling yourself.

however by looking at your code, that does not seem to be the case, I think if you want to change the html content you would need to override render_content like this

protected function render_content() {
    ?>
    <label>
        <?php if ( ! empty( $this->label ) ) : ?>
            <span class="customize-control-title"><?php echo esc_html( $this->label ); ?></span>
        <?php endif;
        if ( ! empty( $this->description ) ) : ?>
            <span class="description customize-control-description"><?php echo $this->description; ?></span>
        <?php endif; ?>
        <input type="text" <?php $this->input_attrs(); ?> value="<?php echo esc_attr( $this->value() ); ?>" <?php $this->link('color'); ?> />
    </label>
    <?php
}