name is the primary field in Lead and that is shown on the top of the screen (title). There is no supported way of changing the primary field. The same is with the lead lookups ( as regardng or Originating lead etc).
If this is behavior unacceptable then use OOB Name as the Company name and a create custom field for contact name. This is address all 3 requirements you stated. On lead qualification (when a contact is created) use a plugin to overwrite the contact name
with the custom field. Also, CRM uses OOB Company name field as Account on qualification. Make sure the field is filled using script/code so that lead qualification isn't affected.
Alternately, use a custom button and implement your lead qualification process using the changed fields for your implementation.
If my response helps you in finding your answer then please click 'Mark as Answer' and 'Vote as Helpful'