Separation of signals without loss of information about the signals themselves
This is probably going to take multiple steps.  As a start, here is what I'd do:


You want a filter that retains pulse information, but filters noise.  The most extreme you can do with this is a rectangular filter that's $100\mu\mathrm{s}$ long, or possibly a raised-cosine filter that's about the same length.
Assuming that the pulse timing is very consistent, phase lock to each pulse train.  This means you have one 1kHz PLL, and one 1.4kHz PLL.  When you get ready for this step you may want to ask a separate question, but if your pulses always start with the same timing (i.e., if a "long" pulse just ends $100\mu\mathrm{s}$ later than "normal") then you can lock onto the leading edge of each pulse.
Any time the PLL phases indicate a pulse will overlap, ignore both -- basically, output "null" on both channels.  You probably need to allow room for those $200\mu\mathrm{s}$ pulses you speak of.
Detect long pulses by looking for unexpected energy $100\mu\mathrm{s}$ later than the expected center of the filter output.
Detect pulse height by looking at the height of the filtered pulse where the PLL tells you.


The very beginning part of development for this would be to record your data into a file so you can play with it, run it through your best guess at a matched filter, and look at it.