Best way to handle memberships involving multiple contacts?
We tend to:


not use households but use individual memberships and the inheritance feature to construct Family (Household-like) Memberships  
use Drupal Webform CiviCRM module to make this a one form signup (adults + children on one form) - with Webform CiviCRM you can add more then one Contact on the Form and specify relationships between these
Contacts
use inherit (on the Membership Type config) -> so that the children inherit the Family Membership by relation


Example - below (adding Children) - in this case we can't add Spouses - they need to sign their own waiver. But we do get them a Free Spousal membership if they specify a Spousal relationship to the Primary Contact.