Now that I understand what is going on, I will post how I got mine working in hopes this will help someone else out.
In the end it was as simple as extending my custom url to always have at least 5 parts. This allowed my custom route to by-pass the AdminAreaRegistration area route which only uses 4 parts. I could find no other easy way to allow my route to run from within my plugin.
Resolved to AdminAreaRegistration (didn't work as intended):
Admin/Dealer
Admin/Plugin/Dealer/
Admin/Plugin/Dealer/Admin
Resolved to RouteProvider (worked as intended)
Admin/Plugin/Dealer/Admin/List
Even though my action (List) was set to default, I still needed to include it in the url.
My final admin custom route is included here for reference:
routes.MapRoute(
"Nop.Plugin.Misc.DealersAdmin",
"Admin/Plugin/Dealer/Admin/{action}/{id}",
new { controller = "DealerAdmin", action = "List", id = "" },
new[] { "Nop.Plugin.Misc.Dealers.Controllers" }
).DataTokens.Add("Area", "Admin");
Note: This help is only if you want your custom admin plugin to start with "Admin". If you want to use a url that doesn't start with "Admin" (like "Myplugin/Admin/etc") you don't need to go through this trouble as your url won't get picked up by the Admin area route.
Note regarding DataTokens:
The advice from 7Spikes noted here is very helpful, but really threw me off as I misunderstood what it was doing. I thought adding the DataTokens was somehow fixing the routing issue, but from what I can tell now, what it does is allows all the other urls on in the nav to be displayed properly. For example, without adding the DataToken, when on my plugin admin page, the default nop affiliate link would show as "Affiliate/List". After adding the DataToken, the link would show as "Admin/Affiliate/List". (strangely the "Affiliate/Link" url worked in admin properly anyway)