I actually have a project which you could use as a reference here
https://www.dropbox.com/s/azb5fxpcfrzp6m0/animated%20terrain.c3p?dl=0
While it looks different it's working in much the same way as your project was. It's iterating over a tilemap using 2 loops ( using repeat in this case ) generating a noise value per tile, and using that to decide what tile to use.
My value calculation line does some math which you probably don't need to look at, but otherwise this is a fairly optimal way to use the plugin.
Looking back at your project, I'm not sure how your applying it in the full version but your tilemap is roughly 108 * 60 tiles ( ~6000 ) comparing this to your event sheet your generating 1000 * 1000 tiles ( 1000000 ). Which means your doing more than 2000 times more work than you need. If you do need that many tiles you will find it much faster to generate the tiles in small patches as you need them ( generally within view of your character ). My terrain example generates just under 15000 tiles per frame and runs at a nice smooth 60fps on my computer, and that's using the slower 3D noise which an additional octave.
You probably know this but perlin noise is effectively persistent, being that given the same seed and the same input values it will always give the same number back out.