Detecting FSK near real time with c#
People have been decoding FSK signals for ages with very weak microprocessors.  The usual method is called zero crossing detection.

You basically just measure time (count the number of samples) between the times when the signal crosses the zero volt line.
The number of samples multiplied by the sampling rate tells you the rate as a time period.  One divided by that number is the frequency of your signal.

That works well enough with clean signals.  If your signal has noise mixed in with it, then you use a band pass filter to just pass the frequencies you are interested in.

I'd work up an FSK demodulator using zero crossing that works for clean signals.  Once that works, you can worry about filters and improving the performance.