1) Misdirection and Hunter's Mark are both on the GCD, so you can't cast them both with a single keypress.
A little code simplification on the MD macro, and add "follow normal casting rules if there's no friendly focus and your pet doesn't exist" to who to MD.
Code:
@showtooltip Misdirection
/cast [@focus. help][@pet, exists][] Misdirection
/petattack [nogroup][group, combat]
Basically will MD to your friendly Focus target if one exists, then to your pet if it exists, and then to your target if neither of those exists.