I am pretty sure I saw somewhere in the documentation a list of features that we shouldn't use in background threads. Now I can't find it.
I have a multi-threaded C++ app that calls PB code using PBNI. For some reason if it is processing more than one thread at a time, the ExportJSON datastore method causes the program to abort. If it is only processing one thread, it works as expected.
The team needs more time and feedback before they can decide what to do or say in the product and documentation.
Regarding alternatives, for HTTPClient, you may consider implementing multi-thread in .NET and then call .NET DLLs in PB.
Regards, Tracy