I think you are doing the right thing. What errors are you getting?
I usually specify something like this:
–output-spaces func anat MNI152NLin2009cAsym fsaverage5
Then I have all the outputs I could need.
As of fmriprep 1.5 this works (at least on our singularity setup). Prior to that there was an issue where one of the output spaces had to be a standard space (see Error in "native" EPI space processing (--output-spaces func)), so perhaps that is your issue?
As to your workaround, I’d be interested to see how it works for you.
However, I have to tell you that I tried this on some small sample (N=2) data in our lab and it did not solve the issue. That is, the results after doing this are still worse compared to a preprocessing pipeline that aligns to a single volume from the start. In fact it did not seem to improve on fmriprep’s approach much, if at all.
We think this is because fmriprep re-slices after aligning each run, and each slicing is lossy (I think), so you cannot “get it back” afterwords. These are just intuitions - which is why I have been trying that other hack in (Is it possible to specify a target EPI volume to realign to (motion correct to) in fmriprep?).
Fyi, what we are looking at is Single to Noise, defined as response reliability for repeated presentation of a movie stimuli (also sometime called “Noise Ceiling”). So I don’t know if my experience generalizes to what you are testing.