In terms of formal tools then your choices are mainly
Atlas and Cartographerhttp://www.romhacking.net/utilities/224/http://www.romhacking.net/utilities/647/
This is the not quite old classic (see Gimmick and romjuice) but what most will know if they use such things.
Kruptar 7 and Oriton maybe but that mostly Kruptar 7.http://www.romhacking.net/utilities/612/http://www.romhacking.net/utilities/709/https://romhack.github.io/doc/kruptarPlugins/
being a nice intro.
Somewhat newer, and potentially less potent, but came out of the Russian scene and is quite hard to ignore as part of these sorts of discussions.
Simple extraction has a few more options in various tools.
That said I am sure you can see how extraction and insertion will inevitably trend towards complex if not actual programming language then quasi to account for every edge case going or be useful across multiple systems (fortunately the NES is fairly well catered to regardless), and this is also why http://www.romhacking.net/?page=utilities&category=14
will have a bit more than mentioned above but the vast majority of things will be game specific.
Before going too far do said control codes include an end of line/section indicator? I often have such things on later systems I play more with and that reduces it to a search with a hex editor, copy paste results of search and 20 seconds with a spreadsheet before copy pasting what I need back into the file. Think "oh no every line ends with 00, find all 00, realise that the pointer is likely 2 bytes later than that so add two, generate pointer list accordingly").
"I'd also like to avoid having to reconfigure my table files as much as possible."
I am not entirely sure what you mean by that. Generally people have to make an insertion table (if only to avoid the A=60h and A=150h dilemma if a game has multiple encodings of the same character).
Programming a tool is not necessarily the worst thing either -- any language that can readily reach out and touch another file as well as do hex maths is going to be suitable for this. If the pointers are in a fixed location dump those, tell the editor what is free space to write text in and then recalculating should be nothing drastic, as will leaving it back in afterwards if you want to edit further. Makes for a pretty nice intro to a given language if you want as well -- no need to mess around with low level C if you don't want as python and other scripting languages of similar potency will do just fine, just make take 600ms to complete rather than 200 if you did some optimised C. Several of the script editing tools mentioned from the general link/category will also come with source to look at.