The NAMES command is not available to be called. You only get sent NAMES on channel join.
@matt_thomas has given a full answer, and noted the restrictions. It’s not worth using the Membership CAP due to the 1000 person restriction.
To me it sounds like you are not consuming channel PART’s correctly inside your code.
For presence in a channel, most people use the (undocumented) endpoint from TMI: http://tmi.twitch.tv/group/user/barrycarlyon/chatters for example, returns a nice JSON packet of the people present in the room, without the 1000 person limitations that the Membership CAP has.
So I’d consider that, membership CAP is only really for OP flags if you are consuming moderators/staff using OP status.