Deriving the CRLB for an active system with non-square shaped bandwidth
Found the solution, I believe.

It's a dumb mistake. I'm calculating the SNR as $S_0 / N_0$ in one case and as $S/N$ in the other.

Since the noise is square shaped, and the signal is triangle shaped, the first is obviously wrong.
Correcting to $\frac{S_0 B/2}{N_0 B}$ gives the factor that was missing from one to the other.