It is probably recursion....
When dateStart changes, you are modifying dateEnd.
When dateEnd changes, you are modifying dateStart.
When dateStart changes, you are modifying dateEnd.
When dateEnd changes, you are modifying dateStart.
When dateStart changes, you are modifying dateEnd.
When dateEnd changes, you are modifying dateStart.
When dateStart changes, you are modifying dateEnd.
When dateEnd changes, you are modifying dateStart.
etc., etc., etc.
[Edit suggested work around, apply to both event handlers]
var bCodeChange = false;
function dateStartChange()
{
if (bCodeChange == true)
return;
else
bCodeChange = true;
console.log("dateStartChange: " + $("#dateStart").val());
$("#dateEnd").datepicker('option', 'minDate', $("#dateStart").val());
bCodeChange = false;
}