O.K. so after a bunch of digging I was able to find a work around. I haven’t found a way to prevent the invoice being created when using authorize and capture, however it appears that the invoice can be forced to be created with an initial state other than ‘paid’.
In my capture function in the model I have inserted the following line. This way the invoice is still created, however its status will not be set to paid until I set it later on in my code.