Here is a set of rules that works fully:
- At any time exactly one board is obligated (initially the board for Team 1 White).
- If both players in the same team have the turn, then one of them must move.
- If one player in each team has the turn, then the player at the obligated board must move.
- Each player who moves at an obligated board may change which board is obligated.
For actual play, we can use a chit to denote the obligated board, and each player who moves at an obligated board chooses whether to leave the chit at that board or shift the chit to the other board.
This rule-set guarantees progress, and yet allows a high degree of freedom in play since each player can always make a move whenever he/she has the turn. Also, neither team can copy the other team to force a draw — Team 1 cannot copy due to (1); Team 2 cannot copy since T1W (Team 1 White) can choose not to change the obligated board, forcing T2B to respond to that first move before T1B needs to make any move.
Note that your proposal (T1W, T1B, T2W, T2B, [repeat] ...) is actually bad because it allows Team 2 to copy Team 1 to force a draw. Incidentally, (T1W, T2W, T2B, T1B, [repeat] ...), which avoids this problem, is permitted by my rule-set but may not include the optimal strategy.
Also, as I said in a comment on another answer, the diagonal-obligation-rule fails when both you and the diagonally-opposite player have the turn but do not want to move (e.g. if it allows your opponent to capture your queen and pass to the partner).
~ ~ ~
Now here is the mathematics behind this rule-set.
First of all, due to the concurrency, it is not at all obvious that this rule-set even yields a well-defined abstract game with perfect play! We formally define this game as follows. A strategy for a team is a function S on all possible game states such that for each possible game state X we have that S(X) is ∅ or the set with the desired move (at a board where a player of the team has the turn). The play given the strategies S1,S2 for the two teams is the result of starting from the initial state and then from each state X always following one of the moves in S1(X)⋃S2(X). The guaranteed value of a given strategy for a given team is the minimum possible value of the play outcome (win = 1 and draw = 0 and loss = −1) for that team over all possible plays in which that team uses that strategy. The guaranteeable value for a given team is the maximum possible guaranteed value of a strategy for that team.
So even after fixing the teams' strategies, the play is non-deterministic, due to the non-deterministic choices whenever both teams have a desired move but only one is followed. Thus such a game may not be zero-sum (in general), meaning that it may be that the sum of guaranteeable values for the two teams may not be 0. (It may be −1 or −2.) However, I claim that the bughouse chess variant I gave above is in fact zero-sum!
To justify that, for each team T we can consider the variant where T has the priority whenever both teams have a desired move but T is not obliged to move. We denote a strategy for this variant by saying it is a strategy for T*. Note that a strategy for T* can do whatever a strategy for T can, against the same class of opponent strategies.
I claim that any strategy for T1* (with priority) cannot do better than some strategy for T1 (without priority) that always waits when not obliged to move. To simplify the analysis, we assume without loss of generality that no game state is reachable via two distinct sequences of moves.
Consider any strategy S1 for T1* against T2*. We shall iteratively modify S1 to remove reliance on priority without worsening the outcome for T1. At the k-th step, consider any possible game state X reachable by exactly k moves such that S1 relies on priority at X (i.e. T1 is not obliged to move but forces the next move to be S1(X) instead of T2's desired move), and consider any possible desired move m for T2 from X. Let X+m denote the game state after making move m from X. Let S1' be the same as S1 except that S1'(X) = ∅ and S1'(X+m) for each such m is defined by:
- If m does not change the obligated board: S1'(X+m) is S1(X).
- If m changes the obligated board: S1'(X+m) is S1(X) plus no change in obligated board.
This definition is valid since each such X+m can be reached only by one sequence of moves and that sequence has length (k+1). Now observe that after X+m only T1 can move, and X+m+S1'(X+m) is exactly the same as X+S1(X)+m. Thus S1 cannot do better than S1' since after X+S1(X) only T2 can move and so T2 can force the next move to be m.
At the end of this process, we have a strategy for T1* against T2* that always waits when not obliged to move but still does at least as well as S1.
Therefore there is some optimal strategy S1* for T1* against T2* that always waits when not obliged to move. Likewise there is some optimal strategy S2* for T2* against T1* that always waits when not obliged to move. Observe that both since S1* and S2* are strategies for T1* and T2* respectively, they can decide all the non-deterministic choices, and hence T1* against T2* is a zero-sum game. But S1* works at least as well for T1 against T2, and likewise S2* for T2 against T1, so they are optimal strategies for the original variant.
This argument fails if we modify "may" to "must" in rule (4)! It may be a fun exercise to come up with a counter-example. I think that requiring the obligated board to change whenever a move is made at it can be achieved only via synchronization (e.g. the obligated player's desired move is executed first before the non-obligated player's desired move if any), which is very difficult to implement in human play — what if T1W has the chit and makes a move at the same time as T2W, and T2W does not want to get the chit otherwise it would be passed to T2B?