Should I escape the html for the settings field created with add_settings_field?

You don’t need to escape HTML you wrote. You wrote it and it’s hard-coded a certain way so there’s no way for it to be replaced by malicious or broken code. You only need to escape the external values that are being inserted into the attributes and you’ve done that.

Also, note that the purpose of esc_html() is to escape a value so that it is not treated as HTML.