Tasker: Conditionally End Calls for Contact Group
Part 2 should be easy depending on the way you't want to log the calls. I would recommend using the writing a csv file then you can use the call in related variables to keep track of who call and when the call started but you'll need to create a timer for the duration of the call. You can find these variables by searching the webpage I've linked for Call Name. Don't use the variables that start with CO they are for outgoing calls.

The timer would be triggered when you pick up and end the call. You could then subtract the beginning time from the end time to get the duration. You don't need to write these time in the log in order to get the duration but you might want to at least log the start time to give you a better frame of reference.