For the physicists in the room (...Bueller?), the modeling a Markov process is conceptually similar to finding the eigenvectors and expectation value of an operator in Hilbert space.
We can start with a casting operator,

. Let's consider the problem of FFB spam with Hot Streak, with a set of basis states

, which denote 0, 1, and 2 consecutive crits (2 meaning you have the Hot Streak buff).
Thus, we have this set of operator equations:
If we crit, it increments the counter. If we have HS, we go back to the 0 state because we've cast Pyroblast.
As a simple finite-dimensional matrix, we can project

into the aforementioned basis.
We then set about to find the eigenstates of this operator, the eigenvectors of this matrix, such that...
To do this, we find the characteristic polynomial by taking the determinant of the following matrix:
...and setting it equal to 0 and solving for lambda, yielding the following:
With the help of a calculator, we can see this has 3 eigenvalues:
Taking lambda = 1, we get the following linear system:
Solving this linear system yields the following equations:
If we set

and combine these two equations, we get

, which is Roywyn's result. If, instead, we impose the normalization condition that the sum of the psi's be 1, then we get the following:
The top number represents the proportion of casts that are FFB, the bottom the proportion that are Pyros.
From here, calculating the DPS of the rotation is straightforward.