Secondo me la cosa migliore è “duplicare” l’ambiente align (con qualche modifica perché usi il contatore “reaction”):
`\newcounter{reaction}
\numberwithin{reaction}{chapter}
\makeatletter
\newcounter{storeequation}
\let\keptc@equation\c@equation
\newenvironment{reactions}{%
\setcounter{storeequation}{\value{equation}}%
\setcounter{equation}{\value{reaction}}%
\let\c@equation\c@reaction
\renewcommand\theequation{C\,\thechapter.\arabic{reaction}}%
\start@align\@ne\st@rredfalse\m@ne
}{%
\math@cr \black@\totwidth@
\egroup
\ifingather@
\restorealignstate@
\egroup
\nonumber
\ifnum0=`{\fi\iffalse}\fi
\else
$$%
\fi
\let\c@equation\keptc@equation
\setcounter{equation}{\value{storeequation}}%
\ignorespacesafterend
}
\makeatother`
L’ambiente “reactions” funziona come desideri tu.
Ciao
Enrico