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.