I’ve investigated this further. W3 Total Cache is uploading the icons to my CDN and rewriting the URL to each icon.
On the marker shortcode map, it properly rewrites it to http://cdn.MYURL.com/wp-content/uploads/leaflet-maps-marker-icons/airport.png
However, on the layer shortcode map, it rewrites it to http://cdn.MYURL.com/wp-content/uploads/leaflet-maps-marker-iconsairport.png
It misses the “/” after the icons directory. I’ve temporarily added an exclusion in W3TC for wp-content/uploads/leaflet-maps-marker-icons/* and the custom icons now show as expected. Any thought as to why the / gets left off the layer shortcode map but not the marker shortcode map?