Rendering isn't stressing GPU I just went through a tutorial video to make an animation of 2 planets colliding. This is only my 3rd rendering, and the first one since I realized Blender wasn't using my GPU. I set to my CUDA based GPU (eVGA GTX 960 SSC 4GB AC2.0 blah blah blah), set the resolution preset to 1080p HDTV, 100% scale, and made sure I  set GPU Compute in the render settings as well.

Obviously I'm pretty new to this, but I was very surprised to see that the rendering process was only pushing my GPU clock to 539mHz (idle is about 125mHz, and rated base/boost clocks are 1279/1342mHz. Running Heaven benchmark earlier it was clearing 1400mHz on it's own (also, I have not overclocked it on my own, it's factory overclocked only). My CPU is also only getting 15% load on average.

The render was taking forever, so I did some research, cranked up my tiles sizes, and cut the render time by a full minute per frame. However, should the Cycles engine not be utilizing more of my GPU's power? I feel like if it were pushing the GPU, I should be able to reduce render time by at least half.

Below is a screenshot of RealTemp CPU monitoring and eVGA's PrecisionX 16 monitoring. Interestingly, my PC is running like ass while it renders the actual 3D objects, despite showing rather low loads on my CPU/GPU.

Thanks in advance for any information, and sorry if this has been answered and I couldn't find it!
Not all scenes will use 100% of the GPU, or 100% of the CPU or 100% of available Memory. Blender will use the computer resources depending on the scene's complexity. Simple scenes will not use the same resources as complicated ones.

3D rendering can be a very complex and resource hungry task, but a wide variety of factors determine render time and computer usage: The number of polygons and subdivisions, types of shaders, modifiers, number of textures, texture size, use of volumetrics, particles or physics simulations, the number of samples, bounces, the size of the rendered tiles, amount and speed of RAM, etc, etc and blah, blah, blah... Not all operations are performed by the GPU so even when rendering on GPU you'll have to wait for the CPU to complete certain processes.

Again, depending on the scene, cutting render time by one half might just be unrealistic. To render in almost half the time, the most viable solution is using two GPUs instead of one...

Finding the optimal settings for your system is a trial and error process. What works on one scene might not work for others. Test different tile sizes (start around 256x256 and see how that goes), play with the number of samples and options in path tracing, simplify, optimize, decimate, bake, use all possible tricks to keep things to your liking, with tolerable noise and within realistic rendering times.

In short: There is no one-size-fits-all solution when it comes to cutting render time.