Audacity is a great tool for this kind of work. You might be able to make a slightly better sound using a sampler that can crossfade across different sounds for different pitches, but I'm not sure if the result would be worth the extra effort.
It sounds to me like the problem with your "current best" is that you either aren't looking for zero crossings when you begin and end your file, or you aren't paying attention to the way harmonics fade in and out.
Zero Crossings: Unless you are trying to make glitchy music (which you clearly aren't), you want your looping samples to always start and end with a value of zero. You also want the slope of the line coming to the zero crossing to be as similar as possible. That means that if the first few samples of the file are increasing, the last few samples should also be increasing, but from negative values towards zero. Generally you want to decide on your preferred slope and stick to it for all samples in your project to make it easy to interoperate.
Harmonics: Simple sounds like a sine wave cross the horizontal access predictably. You only need three zero-crossings of a sine wave to make a good sample. More complex sounds often have harmonics that fade in and out with a longer period or even an irregular period. Your job is to carefully scan through your file and find sections that loop. This may not be easy. Try using the FFT view in Audacity to find other periodic sounds in your recording.
Alternative: You might be able to synthesize acceptable engine noises using distorted square or saw waves. They won't sound perfectly accurate, but most of your customers will have spent more time driving Ferraris in video games than the real thing…
Pitch: As the engine revs increase, the pitch also increases. It may be useful to remove this pitch shifting in order to extract short samples, and then re-apply the appropriate pitch shifts to your looped samples.