In general, the way you interact with these non-CRM contacts isn't so different, as long as you work with them separately.
You can use Data Extensions with them, but you'll need to figure out what kind of attribute you will be using as Subscriber Key to send to them. If possible, do not use Email Address and try to use an actual unique identifier. Ideally generate a new ID format to them which will always be used for non-CRM contacts.
Tracking to CRM cannot be lost since they aren't existing in CRM anyway. If they are later introduced to CRM, then yes - there is no way to get old tracking data from SFMC to a CRM automatically, especially in a scenario where sends were done to a Contact with different Contact Key.
Contact ID will exist for all individual Contacts, regardless of their origin. This (backend) identifer will be set by SFMC to all unique Contacts.
Personalization scripts, custom landing pages (Preference Center) and all those will need to be adjusted to work properly for the new non-CRM contacts.
Overall the key thing you'll need to understand to know is that if you plan on using Automations, Triggered Sends, Journeys then you'll need to configure it for scratch for these Contacts - based on whatever attributes you have available and whichever attribute you select as Subscriber Key.
Complications can arise if you would like to use Journey Builder and Contact Data path to use more up to date values from your data source for these Contacts. This will require some custom work on Data Designer.
In any scenario, to avoid duplicates (either with CRM contacts or with non-CRM contacts) is something you'll need to figure out before importing a batch of non-CRM contacts to Marketing Cloud.