This should solve your If Not Outlook issue:
<!--[if !mso]><!-- -->...content...<![endif]>
Instead of targeting two different Ifs, why not make one the else?
<!--[if (gte mso 9)|(IE)]>...exception...<![endif]-->
...content...
You can target Outlook in a variety of ways:
- lt is less than a specific version.
- gt is greater than a specific version.
- lte is less than or equal to a specific version.
- gte is greater than or equal to a specific version.
I'm not sure Outlook supports the logic of if not.
However, if you are doing something with content that is specific to, for example, Outlook 2016, try this:
<!--[if (lt mso 15)|(IE)]>...exception...<![endif]-->
<!--[if (gte mso 16)|(IE)]>...Specific Outlook 2016...<![endif]-->
...content...
This is the Microsoft numbering scheme for Outlook:
- Outlook 2000 = 9
- Outlook 2002 = 10
- Outlook 2003 = 11
- Outlook 2007 = 12
- Outlook 2010 = 14
- Outlook 2013 = 15
- Outlook 2016 = 16
Good luck.