Settings api sanatize callback not being triggered

It’s because you have typos in your code :

in the function called header_logo_validate() it should be :

return $new_input;

EDIT:

add_action( 'admin_menu', 'ec1_admin', 10, 0 ); 

args are useless just write add_action( 'admin_menu', 'ec1_admin');

EDIT 2 :

This is not a correct way to add several fields. You should put this into arrays or in one callback.

Maybe you need to globalize $settings (write global $settings;) to make esc_url() work in this context, see this answer