Hello hp3,
most of the requirements will be out of the box with CiviCRM. Here are the ones I am not sure about, where you might have to make a little customization with hooks and API's. It might be that others who are more familiar with paying processes in CiviCRM will be able to tell you it is out of the box too!
We need an option for registration forms to automatically “unpublish” after registration/submission deadline date passes to prevent users submitting forms after the registration date has passed.
Automatically update registration fees after late date registration.
Automatically downgrade a user role from membership to registered user role if user does not renew before end of membership (Membership lasts 1 year).
A Gift membership form so that others can purchase a membership for friends, family or associates.
Good luck!
Erik