Quando realizei um delete usando Cascade, em alguns casos o campo model_id estava entrando como um array no formato array('Model.id' => 'value'), então alterei os métodos: takeSnapshot e logQuery alterando a informação sobre o Id para o seguinte:
$id = (is_array($Model->id)) ? current($Model->id) : $Model->id;