I looked at crafttweaker but if i understand right it cannot add and remove items at runtime since 1.12 which is a bit of a deal breaker for me.
I did figure out a good means of doing this however. using the forge recipe registration I am able to remove recipes at Init and re-register them via advancements. JEI also works well with hiding the recipes however if i understand their api correctly the capability to hide/unhide at runtime is not exposed publicly.
EDIT: Actually the above might not be exactly what you want. The above would still show the recipe unlocked normally, but the recipe would not actually work until the condition is met. If you want to also change when it is unlocked I think you need to replace the advancement. There is a thread here which may help for that: http://www.minecraftforge.net/forum/topic/60078-add-and-remove-advancements/