Your approach is one method. This would work with relatively well-separated in time stimulus epochs, but might not work well with interleaved event-related stimulus designs.
An alternative to casting out the unwanted baseline is to create a GLT (general linear test) modeling the differences you want to test. This is done with the "-glt" option to 3dDeconvolve. The 3dDeconvolve manual explains this in detail and has some examples; and the 3dDeconvolve HowTo has some data and examples.
bob cox