Quick tip for pulling these types of signals out of noise: use a trapezoidal filter. It's just the difference between two offset moving averages. The length of the average (peak time) serves as an integration that removes high frequency noise. The offset (gap time) provides differentiation of the integrated signal, which removes low frequency changes in baseline. Timing precision is improved by using the trap filter output rather than the raw signal compared to a threshold, as it effectively acts like a constant fraction discriminator. It also makes it easier to deal with pile-up events where multiple waveforms lie on top of each other, though that's improbable unless you measure a source that's really hot or pulsed.