The Pain eh...the grain is real. Mc and his friend/daughter/what ever from my project. Was just a Testrender. I still suck in posing characters, and my rendering still takes way to long. meh.
#1, simplify scenes. Don't use more stuff than you need. It's why I composite so many shots. The backgrounds are largely irrelevant. Reflectivity, translucence? These are going to take time for Iray to calculate, so throw it out if it's not important.
#2, use oversampling and anti-aliasing. Render above your target resolution, then scale down. Image resolution is about getting synthetic light through an aperture at a sufficient sample size in order to resolve an image. The biggest part of the sample will be between -1 and +1 standard deviation from the mean, and that's the best part for your engine. The tail ends (90-100% convergence, for instance)? That's a lot more time and less efficient on the engine.
By oversampling and downscaling, you're actually doing the same work but more efficiently. The NVidia guys figured that out (I don't have all the maths). You're working more of the -/+1 standard deviation range for the image resolution that you actually want, and the downscaling creates more convergence by taking the data around each pixel and mashing them together.
(Before we had software denoising, this is what we did. That was denoising before we had denoising.)
#3 use a software denoiser, like Intel's FOSS denoiser. That uses artificial intelligence to re-interpret noise pixels (grain) and create a whole image from it.
I do all 3 of those to save me some render time. Simple scenes, oversampled, and denoised as needed.