How to just keep latest records in SQL server?
You can use row_number() and a CTE to delete from the source table.

;with cte as(
   select 
        *,
       RN = row_number() over (partition by [Name], [Status] order by [ChangeDate] desc, ID desc)
   from EMP_Detail)

delete from cte
where RN != 1;