Physical modeling / waveguides / etc. might be one way to go here.
As an example: Andy Farnell's "Designing Sound" (https://mitpress.mit.edu/books/designing-sound) describes some physical modeling techniques for engines. (The model is referenced in this paper: http://www.academia.edu/14107512/Physically_informed_car_eng... which tries to improve on the model and also might contain some additional ideas).
I took a listen at the engine sample from Andy's PureData code page (http://aspress.co.uk/sd/practical22.html). The second half (where the engine was revving and accelerating) sounded pretty good to me! It might need some combination with samples, though, the idling portion kind of sounded off...