How can I mark a contact as unable to receive text messages?
Change their type of phone to something that is not "mobile" or "iPhone". You can create a new type of phone if you want and name it something like "nosms".