What is the best approach for displaying / modifying behavior of Activity Subject & Custom Field?
If you need to adjust Subject to be a select field for use directly in Civicrm then would need to change the field type in the db and customise so it uses a set of Option Values

If the data is mostly being added via a Webform then you can adjust the widget on the Component and set it up as a Select field without needing to mess with the machinery