See the checkpoint article for an overview of what are Checkpoints.
Tasks aren't very different from Checkpoints, in the sense that they also represent an activity to be done within the project line. However, contrary to checkpoints, they do not impact the workflow calculation (they will not block the progress of the project line, when a task is delayed, the project line isn't delayed, etc.), they do not have duration and they do not create a separate collaboration space. The main usage of tasks is to provide a way for project managers to customize further their project lines without deviating from the overall workflow constraints which are usually shared between projects in the company: they can create very specific tasks for a project line, assign it to partners, etc, yet keep the overall structure of the project line and not impact the statistics reports in any way.
Milestones are linked to a specific Checkpoint in the project line and can be thought of as observers on the Checkpoint progress. When creating a milestone, an expected due date must be set: the status of the milestone will then be calculated by comparing this fixed, expected due date to the current due date of the checkpoint. Milestones are a way to add intermediate status to a project line, instead of only looking at the date of the delivery checkpoint.
A milestone is a scheduling of a major event of a project line. By definition it has no duration. On Winddle a milestone is always associated to a checkpoint.
During the life-cycle of a project a milestone is not suppose to change as it is the target you are tracking. On the other side the projected date of the checkpoint associated to the milestone evolves on a daily basis depending on other checkpoints and the work done on the project line, therefore the projected date of the checkpoint is compare to the milestone (target) in order to calculate the milestone status.