Custom history to save only completed instances

Hi.

We want to save in the history tables only the process ends.
So we create a custom history level with this code for isHistoryEventProduced method:
public boolean isHistoryEventProduced(HistoryEventType historyEventType, Object entity) {
return (HistoryEventTypes.PROCESS_INSTANCE_END.equals(historyEventType);
}

When we run an unit test, we find that this method does not launch when process finishes. It is launched at the beginning of the process start. Also on create and end of tasks and variables. But not at the end of the process.

Why can the end of the process event be skipped?
To save the process instance in the history (when it has finished its execution), is there any other alternative?

Thanks

Pere Abelló