Using Webform as an Application for membership/user roles I'd like to implement the following on a Drupal site:


Anonymous site visitor (Joe) submits a membership application with various custom fields
Admin (Jane) reviews membership application
Jane approves Joe's application and creates new user account
Joe gets notice of approval and login information


Possible solutions:


A Webform (But how can the data from the webform be easily transferred into a user account?)
Profile2 with Admin approval necessary. (The problem with this one is we don't want it to feel to the user like they are creating an account on the site, but applying for the membership.)
Create a Membership content type that an anonymous user can fill out (?)


I feel like I'm overlooking something obvious.

I can't use the core user registration with additional fields because there are 3 different types of memberships. And users should be able to change from 1 membership to another (upon approval).
Based on some other questions you've asked on this site I wonder if you are using CiviCRM for tracking the memberships? If so I might suggest this workflow:


Setup a webform with CiviCRM integration. Add your membership and other custom fields to the form.
Set the membership status to be "Approval Needed" (you can create that status in CiviCRM if it isn't there already).
Have it send an email to your staff whenever that form is filled out.
You can optionally restrict access to that form so that only non-members can use it.  This would require you to enable the module 'CiviMember Roles Sync' which is bundled with CiviCRM and enabled syncing between Drupal roles and Civi memberships.