Separate two sinusoids with very close frequencies (5 Hz difference) in a 44.1 Khz audio signal, with good time-domain resolution
I believe there are a couple of reasons why your answere is not coming out as expected.  What you have in your problem is the spectrum of the sum of three signals 

$G(\omega) = S_1(\omega) + S_2(\omega) + N(\omega)$

where $G(\omega)$ is the spectrum you showed, $S_1(\omega)$, and $S_2(\omega)$ are the spectrum of the signals of interest and $N(\omega)$ is the noise spectrum.  You are attempting to recover signals $S_1(\omega)$, and $S_2(\omega)$ with high fidelity, which may not be possible in this case.  For simplicity, I won't worry about noise here.

Your solution assumes a couple of things.  First it assumes a very small bandwidth for each signal.  You mention that the recovered signals have a slow fade in, which would indicate a band-limited signal.  As an example, a infinite length sinusoid in the time domain would be delta function in frequency.  

Also, the spectrums $S_1(\omega)$, and $S_2(\omega)$ overlap, which is problematic.  Think of it as a system of linear equation.  In your case, you have two unknowns, $S_1(\omega)$, and $S_2(\omega)$, but only one equation.  This leads to an underdetermined system that has 0 or infinite solutions. 

To overcome this situation you may attempt to assume additional information about the signals $S_1(\omega)$, and $S_2(\omega)$.  Your previous assumptions of limited bandwidth and non overlapping spectrums lead to your previous answer.  In looking toward a better solution, I would suggest new assumptions.  For example, you could attempt to model your signals $s_1(n)$, and $s_2(n)$ as windowed sinusoids and attempt to estimate window function from the data.  Additionally, you may attempt to use a windowing function on the time domain signal to limit the side lobes of the frequency spectrum to improve isolation as well.