To all those asking, I did eventually solve this problem for my client at the time. It was admittedly a bit of a “hack” solution, not the cleanest code in the world, but it worked well and its still functioning well today.
I am more than happy to implement a similar solution for anyone in the same kind of scenario – I can be hired via Codeable at https://codeable.io/developrs/zach-nicodemous/