I imagine Co-Op play as a Single Player Campaign exactly but with a few tweaked variables to make it possible for other players to be able to play in your campaign:
1. The host creates a campaign and is the owner of the campaign. Other players cannot save the game or affect the save state of the game. The host enables a setting that lets other players join and can send invites to friends list members or other members can search for the game name. The host creates a new character and clan in the same way as single player, the only extra step would accessing the multiplayer menu (this menu would be something accessible mid-game and separate from the current multiplayer launcher) after the tutorial and creating a Host Game Name, enabling others to connect, optional password, and option to invite players directly from friends list (Steam?).
2. Other players can drop in and out of the host campaign at any time and must make a character and clan in the same way as they would in single player mode (or see variable tweak #3). A connection must be made to the host game before starting the creation process. Optionally it would be nice to create a character/clan that can be saved as a preset then selecting any preset to be used after joining a host game.
3. When the host leaves the connection to other players is lost. When players other than the host leave the game their character/clan is controlled by an AI while the host continues to play the game. Optionally a host can enable in the multiplayer menu: allow incoming players to select another created character/clan to play that was introduced after the creation of the campaign (this way players don't have to start over every time they join the same campaign) and a longer campaign can utilize the same Clan across multiple players if the host doesn't want to start over or be forced to play with Tier 1-2 Clan friends constantly.
4. This is the probably the most challenging part for the development team. The campaign map must always be in real time from the host perspective and pause, speed 1, and speed 2 would only be manageable by the host. This means that the campaign map will continue to calculate a simulation while the host is in town and in the battlefield, otherwise other players would be paused on the map while the host is in town or on the battlefield and vice versa. For this reason a new time format needs to be introduced speed 0 (Hotkey: 0) which would be a multiplayer menu option to set speed 0 to any percentage of time pass and movement speed on the campaign map between 1% and 99% (can be changed at any time via the multiplayer menu). The host would be able to access pause, speed 1, speed 2, and speed 0 at any time (including during a battle, in town, and during NPC conversations via hotkey functions). There should be a multiplayer menu toggle to automatically pause the campaign map when the host and all connected players are not on the campaign map and a second toggle to automatically unpause the campaign map to the last used of speed 1, speed 2, or speed 0 when the host and all connected players are on the campaign map. This would also allow players to pass time when docked in town without being stuck on the town/castle/village menu.
5. Any player would be able to enter any instance including towns and battles as currently in the single player campaign. The only difference would be entering a battle of another current player mid-battle after traveling at any speed other than during pause (impossible to move). When entering another players battle they will join the battle in real time from a random location of the map.