on_init - This is called once when a new save game is created or once when a save file is loaded that previously didn't contain the mod. So, it will never run in this case!
on_load fires when the mod is being loaded after all necessary initializations have run and that means, inits necessary when a config changes.
So, this leaves on_configuration_changed to be the first event to be fired. But, there is no guaranteed order for it to fire. Multiple mods have this event registered and any of them can fire before yours. If one of them resets the technology effects, then the technology effects event will be fired on all mods that have it registered, including yours. All this, before your on_configuration_changed event ever fired!
And, as you can see on the error I posted before, the stacktrace comes from bobs-plates in his own on_configuration_changed event where he calls the technology effect reset...
A very simple fix is checking if unlocks is defined in your togglePermutations, to prevent it to run before you have built your registry. Then, when your own on_configuration_changed runs, it will build the registry and, if you want, to be super safe, force a technology reset in it after the registry was built, to force togglePermutations to run now that the registry is built! After all, configurations changed, so you need to be sure all permutations are correct!
Edit: only change I made on your mod was adding MoreScience-SeaBlockExtension on the optional requesites to guarantee that your mod catch other recipe changes on this mod and now, the verification if unlocks is null so the save could load!