This gives you the ability to customize the failure case output, which is nice.
It's not possible, in stable, to get implicit conversions using ? from Result to ProcessResult (or whatever one calls it). In nightly it can be done though, and the magic sauce is try-trait-v2.
To avoid needing a bunch of .into() in main() I usually have a main() which calls main2(), and it's merely the role of main() to call main2() and convert its Result into the ProcessResult. When/if try-v2 is stabilized, this hack can be dropped (well, unless changes..).