Think about class name for packaged_token (and packaged_handler)
Pre-Lenexa Summary
[async.package.handler], [async.package.token]
packaged_handler is like a std::packaged_task except that it is specifically for completion handlers rather than generic tasks. I feel that this is the appropriate name although packaged_completion_handler could also work, given that we are now using the term "completion handler".
packaged_token is a CompletionToken type that will be transformed into a packaged_handler when the handler_type trait is applied. I don't have any other suggestions for this name.
Full notes of Lenexa discussions to follow, but one thing that might be worth considering is whether these types can be removed from the spec entirely, or at least made "exposition only", just saying that package() returns an unspecified type, and that the various traits templates are specialized to do the right thing for that unspecified type. Then the specific names don't matter, as they're not part of the public API.