APCu > Memecachedd when doing caching on only one server. Memcached should be used to have object caching in multi server enviroment while on a single server the overhead of the communication and task switching involved with using it is just pointless when compared to the not complicated direct approach to memory that APCu takes.
As for the expiry time of a cached entry, this is something that is set on the wordpress side of things. W3TC has a configuration option and if you use the wordpress caching API you can setup the expiry yourself. Of course setting expiry time doesn’t mean that the caching facility will actually keep it that long and from your description it sounds like your entries are being purged before the timeout and this might indicate that you either do not have enough memory for cache or that you don’t have a consistent way to calculate cache keys.
Both caching utilities have their own monitoring utilities which are not complex and do not provide a great insight but my experience is that if you need to inspect things on that level you probably don’t use enough cache memory.
And the whole object caching related discussion is pointless if yous W3TC works properly as there should be very little hits on APCu/memcached or the DB.