Is there anything like get_variable storage that doesn't get loaded every page?
Variables are loaded on every page anyway, regardless of whether your custom code requests a specific variable be loaded or not.

So, the only extra memory overhead you will incur is whatever PHP packs your 20kB of data into.

If your app is sensitive enough for that to matter, then either create a custom table to store the data, or just write it to a static file and read it back from there. If not (more likely), then just use the standard variables method, it's easier.