To answer your first question: As far as I know, there's no way to control the way conditional formatting is prioritized in MS Project.
To answer your last question: Indeed, you do miss something here. A task can't be a milestone. Well, it can be in MS Project. But in my eyes this is plain wrong. When you are using a scheduling methodology (PERT, or - like you do - CPM), a milestone is a mark to emphasize a specific point along your timeline to help you to easily see whether or not your project is on schedule.
One can argue that a milestone in fact can have some kind of "duration" (e.g. when waiting for some tests). But it definitely can't be a task. A task is an activity, a milestone is a marker.
So as MS Project handles milestones as tasks and regarding to answer one: I'd try fiddling around with the conditional formatting (first blue, then red and vice versa). That always helps with my issues.