ZFS should be freeing RAM as it's needed.
the default size of a transaction group being 4GB in my case
You tell if that's too large by seeing how long it takes ZFS to commit that transaction group to the pool. Meaning, how long it takes to write to the pool.
How long it takes for another group to be full is how long it takes you to fill 4GB of SSD space, essentially.
So it's a matter of input speed vs output speed. You want output to be faster than input. That will prevent you from filling a second transaction group before the first is fully written. You can't just do a benchmark and use those numbers though as ZFS has a bit of overhead. i.e. dealing with metadata and such.
If you imagine output to be SLOG -> ZPool, then it's whichever's max speed.
If you imagine input to be ZPool -> SLOG, then it's whichever's max speed.
Almost certainly will be the ZPool though.
So, I would create the zpool on it's own and do a benchmark for it and the SLOG then figure out which is the bottleneck (again most likely the Zpool since it's on an HDD). Then do math to see how fast the 2nd transaction group could fill vs the 1st being written.
http://dtrace.org/blogs/ahl/2014/08/31/openzfs-tuning/
That URL has ways to benchmark for performance on OpenZFS.
From that first link to the forum thread explaining about the SLOG and ZIL:
This gives us some guidance as to what the size of a SLOG device should be, to avoid performance penalties: it must be large enough to hold a minimum of two transaction groups.
If your transaction groups are 4GB, your SLOG needs to be 8GB. Having it larger may help but is probably not worth dealing with. Having it smaller will prevent you from having two transaction groups' worth of space and thereby cause I/O to be paused when one is full.
So I would do 200GB for L2ARC, 8GB for SLOG, and 48GB for overprovisioning for Synchronous I/O (as mentioned in the General Recommendations on the OpenZFS Performance Tuning URL I linked earlier).
Following that paragraph:
The choice of 4GB is somewhat arbitrary. Most systems do not write anything close to 4GB to ZIL between transaction group commits, so overprovisioning all storage beyond the 4GB partition should be alright. If a workload needs more, then make it no more than the maximum ARC size. Even under extreme workloads, ZFS will not benefit from more SLOG storage than the maximum ARC size. That is half of system memory on Linux and 3/4 of system memory on illumos.
So based on that, don't make a transaction group larger than the max ARC size as it's pointless. And maximum ARC size, on linux, is apparently 50% of RAM.