Different bits of @VisualInk work best with very different storage patterns so I finally bit the bullet and wrote my own data access layer with... #sql. Did I get object mapping for free? No, I had to hand craft some code there. Does the new version have less storage overhead, safer migrations, transactions across multiple operations, and enourmously higher performance? Yes, yes it does. The API you can build with a #fsharp computational expression to make carrying the connection pool and transaction info is pretty sweet.
Now I just need to deploy it to prod before teaching the next course using it (which is next week).