how do I best configure this complex event registration scheme?
I would approach this roughly as follows:

Early bird registration fees can be handled either through the standard pricing options or using a price set. given that you want to have the additional banquet option using a price set would be the way to go, and simply set the start and end dates for your price fields accordingly.

All of the participant roles that you have defined can be handled in one of two ways: Either register all of these people via the back end so that you have control over whether they pay or not. Or, if you want them to register themselves through the website then set up suitable discount codes (using the CiviDiscount extension) and distribute those codes accordingly.