My apologies too to the OP for drifting OT...
Check out Meldaproduction's MDynamics. I haven't used it myself, but on paper it's as close to a do-everything plugin you'll find. It can be a compressor, limiter, expander, or gate. You can define custom transfer curves. Ultra-fast attack times, parametric sidechain filter, parallel operation, RMS detection, variable-knee, auto-release, 2-16x oversampling, continuous channel unlinking, resizable UI - about the only feature it's lacking is M/S processing. Catch it on one of the half-price sales and it'll be only $64.
You'll get quite different results by placing the gate before versus after compression. Usually, it works better before, because the greater dynamic range makes it easier for the gate to distinguish between low and high levels. However, inserting it post-compression may be called for in some circumstances, such as when the compressor brings out excessive sibilance on a vocal.
Back to topic...Bedroom Producers has a list of free chorus plugins
here. The #1 pick on their list is one that I tried a few years ago when it was made for the KVR Developer's Challenge (which it didn't win):
Azurite. When I'd tested it back then, I remember being surprised by its extreme modulation capabilities. It did not, however, suit my own style and I've never actually used it in a project. But it satisfies the OP's main prerequisite - free - so it's worth taking a look at.