Coming back here to say that the problem I was having seems to have been somewhere completely different.
I can’t say I know what the original problem was, because the conditions in which I tested it are now yielding a totally different result. However, I can say that now my fix of setting the hardwareBufferSize to 2048 ended up creating a different problem. Having refactored a lot of my code, the original issue, and the need to make adjustments seems to have sorted itself out.
My take away from this is - make sure to set the hardwareBufferSize the same on each program running on the same machine.
This might be obvious in hindsight.