Could be converted to synchronous - i.e. blocking until response from the server is received. Of course the question is whether that would be fast enough.
Since vscode is electron its hard to tell if visible delays are due to electron, or the server, or on a timer (like our ctags). Some things are pretty quick, like showing a popup with a symbol definition, if its that fast it might be ok although thats only a lookup, and in only a single file 200 line C++ example I'm using. But some things are slow, like highlighting, which can take about a second or two, that may be a timer or simply thats how long the server takes to do a proper compiler anaylsis of the syntax and semantics and respond. Either way its too slow for in-typing use if synchronous.
Of course I'm running it on a medium speed machine, worth a try on your Rpi.
But none of this is relevant to using libreadtags which seems a fine idea.