Here is my explanation from the 1st of May.
This can happen in a rare case where a single resource is assigned to a task and the project manager then decides that the person is no longer needed on that task. Rather than deleting that assignment, the project manager zero‘s out the resource‘s assignment unit value. So with Duration = Work / Units, if Units is '0', then Duration will be '0', and TaDaaa, you have a milestone. (MSP will not give you a divide by 0 error)
Regards,
Michael Thibault
Note: Zero duration tasks are Milestones.