I'm assuming you did not have a date listed in writing whereby the animal must be paid in full and shipped. You may want to put into your TOS (and also into an email sent to each deposit holder) that every animal held on deposit must be paid in full and shipped by _____ date or the snake will be relisted for sale and reiterate the deposit is non-refundable. This kind of protocol removes any ambiguity, puts it in crystal clear writing, and also doesn't absolutely require a response from the buyer in case they drop off the face of the Earth as it seems yours have.

In your case, I would just refund his non-refundable deposit and put the animal back up for sale. It's a frustrating situation for you as the seller, but at the same time, it's a little iffy keeping his money when there was no end date for holding the snake clearly defined. Send him an email and politely state that unless you hear from him by the end of the week, you'll be refunding his deposit and the animal will be put back up for sale. I don't think a single reasonable person could fault your customer service if you handled it this way.