Could you use xAPI? There is an xAPI plugin for Adapt...
I was hoping this challenge may already have been solved
Well yes, the spoor plugin solves this. What you could do is re-write spoor's wrapper.js so that it sends data to/retrieves it from your back-end. I have done this pretty successfully in the past in order to make an AICC Adapt course. The main challenge you'll have is that spoor expects all the data to be there for retrieval immediately i.e. it doesn't do asynchronous calls.
Alternatively you might want to have a look at the trackinghub extension created by community member JPablo. I've never used this myself but I know others have used it successfully. It was built for Adapt v2 so may need a bit of adjustment if you want to use it with Adapt v3.