My brain cant read all of that at the moment from just waking up but you can put this at the beginning of the command chain.
!fight @target@
@if@[@readfile@[fightgame.txt]||closed||@exec@[0,!fightgameon] @exec@[0,!fighter1] @exec@[0,!fighttarget] @exec@[60,!fighttimer] @exec@[!fighter2msg]||/w @user@ Someone else is currently fighting!]
!fightgameon
@savefile@[fightgame.txt,open]
!fighter1
@savefile@[fighter1.txt,@user@]
!fighttarget
@savefile@[fighttarget.txt,@target@]
!fighttimer
@if@[@readfile@[fighter2.txt]||none||!fightoff||!nothing]
!fightoff
@exec@[0,@savefile@[fighter1.txt,none]]
@exec@[0,@savefile@[fightgame.txt,closed]]
!nothing
(literally does nothing)
!fighter2msg
/w @user@ has challenged you to a fight! To accept enter !fighter2
!fighter2
@if@[@readfile@[fighttarget.txt]||@user@||@savefile@[fighter2.txt,@user@]|/w @user@ You aren't being challenged to a fight!
From here you link to the main fighting game commands.
After the fight has ended just link a final command to close all open slots.
!finalcommand
@exec@[0,@savefile@[fightgame.txt,closed]] @exec@[0,@savefile@[fighter1.txt,none]] @exec@[0,@savefile@[fighter2.txt,none]]
That should more or less do it. Just gotta figure out how to chain it to the current fight game.