Think I'm getting to the bottom of this. We have a CRM plugin that's triggered by the creation of an invoice product record, updating the record to populate some fields. It seems like behaviour has changed somewhere between releases 7 and 13 and the execution of this plugin seems to be blocking the create invoice, or the other way around.
Changed execution from synchronous to asynchronous and it seems to be working again now.