Meta Stack Overflow is not, actually, a meta site in the api sense. It tracks reputation, and has a distinct set of user accounts from Stack Overflow.
Image hashing isn't really compelling, as you'd have to be polling
/sites quite frequently to make use of it, which you shouldn't do. Rather, just pull the image down once a day* or so.
Clarifying the relationship between meta<->parent is already [status-planned].
You could also get clever and only pull images when something has happened that might signify a logo change. Things like: name changes, site_url changes, and state changes. Naturally the path to the logo itself changing would be a strong signal to invalidate your cache.
Per your edit, meta sites are always in the same effective state as their parent site by definition. So, Gaming Meta is in
open_beta but Meta Server Fault is
normal. This only really matters for
closed_beta, as it restricts access to sites.
*As systempuntoout pointed out, you should be setting the If-Modified-Since header for those resources. Fetching them is outside of the API, so all the usual HTTP image caching tricks are valid.