How to stop CiviCRM deleting a scheduled follow up activity when the original activity is deleted
This is coming from the db schema. There's a delete cascade constraint on parent_id. You could remove that constraint but it might be used elsewhere for different types of activity-pairing (not followup related)  to enforce data consistency. Would have to review all the activity-related code that uses parent_id. It's also possible that parent_id for this pair of activities is never used again anywhere,  so another possibility is remove that linking for followups (via some code, either override or extension), but again would need to review.