I've never had a problem using hot glue
I use a combination of Pros-Aid adhesive (from Monster Makers) and flexible fabric glue.
You want something strong and flexible - so contact adhesive is the best choice. Barge and Pliobond are two popular choices. Barge is used to hold soles onto shoes, so you know it's strong!
You have to use a contact adhesive correctly though or it won't work - brush it onto both pieces and let it dry for like 5 minutes, until it becomes really tacky, and then stick the parts together. You also need to find a way to hold them for a while - you can just use your hands or wrap the puppet with something for a while.
ACE Hardware sells Barge.
Contact adhesive works, if you can't get the 3M No 74 spray glue (or if it's too expensive - it's $36 a can here in Oz, but probably less in the US where it comes from). If the 3M stuff is at the right stage of tackiness, you don't even have to hold it in place, it just sticks and holds itself, instantly. Most contact adhesives seem to do that.
I imagine Pros-Aide would take a while to dry, so it would need to be held in place.
Yeah, that's true - you don't need to hold the contact adhesive till it dries - it does grab right away (I might be thinking of my own attempts to use pros-aide - or to stick pieces of ill-fitting rubber together while they're stretched over compressed foam - talk about loads of fun right there!)
I find Pros-Aide works pretty much the same as contact cement...without the toxic fumes. Dab a little on the piece you're sticking on and the piece you're sticking it to, wait a minute or two, then slap them together. Once they're down, they're down.
But for serious sticking, or when I'm gluing fabric to foam, I like to use the fabric glue. You do have to let it dry a few hours (I use cello-tape to hold it in place) but once it's dry it's really on there.
I went with the hot glue method this time around, both because I had it on hand, and, since this is my first SM puppet, wanted something slightly less permanent in case I flubbed it. So far it seems to be working pretty well, but in the future I'll experiment with some of the other methods mentioned.
Thanks everybody for your suggestions.