Thanks both for your replies.
I will try open in FX offline mode and see how long it can go without crashing.
Do either of you know how to analyze a crash log? I can't make any sense of it. I *think* this is the section that's relevant because it says 'crashed', from the log report:
______________
Thread 14 Crashed:: reaper/mediaafx
0 libsystem_kernel.dylib 0x00007fff6312af72 __terminate_with_payload + 10
1 libsystem_kernel.dylib 0x00007fff6313d602 abort_with_payload_wrapper_internal + 121
2 libsystem_kernel.dylib 0x00007fff6313d589 abort_with_reason + 22
3 libobjc.A.dylib 0x00007fff618238dd _objc_fatalv(unsigned long long, unsigned long long, char const*, __va_list_tag*) + 108
4 libobjc.A.dylib 0x00007fff6182378f _objc_fatal(char const*, ...) + 135
5 libobjc.A.dylib 0x00007fff6182ec31 (anonymous namespace)::AutoreleasePoolPage::fastcheck(bool) + 157
6 libobjc.A.dylib 0x00007fff61815f83 objc_autoreleasePoolPush + 52
7 com.plugin-alliance.plugins.vst3.ElysiaNvelope 0x00000001da5c32d3 GetPluginFactory + 15971
8 com.plugin-alliance.plugins.vst3.ElysiaNvelope 0x00000001da5cfe34 GetPluginFactory + 68036
9 com.plugin-alliance.plugins.vst3.ElysiaNvelope 0x00000001da5d0150 GetPluginFactory + 68832
10 com.plugin-alliance.plugins.vst3.ElysiaNvelope 0x00000001da55f56b 0x1da554000 + 46443
11 com.plugin-alliance.plugins.vst3.ElysiaNvelope 0x00000001da5bb5d2 bundleExit + 52610
12 com.plugin-alliance.plugins.vst3.ElysiaNvelope 0x00000001da5bbfed bundleExit + 55197
13 com.cockos.reaper 0x0000000103ccf251 VST3_ProcessReplacing(AEffect*, float**, float**, int) + 2721
14 com.cockos.reaper 0x0000000103ae6e6f VST_HostedPlugin::ProcessSamples(int, double*, int, int, int, double, midi_List*, bool*, double, double, double, bool) + 10207
15 com.cockos.reaper 0x0000000103b0ecbd FxDsp:
rocessSamples(int, double*, int, int, int, double*, midi_List*, double, bool, double) + 4877
16 com.cockos.reaper 0x0000000103b27780 FxChain::ProcessSamples(int, double*, int, int, int, int, double, midi_List*, double, bool) + 768
17 com.cockos.reaper 0x00000001038353a0 MediaTrack::RenderSamples_nocache(double, long long, double*, int, int, double, MediaTrack* const*, int, int*, bool, int, int, bool*, SyncSMP_Context*) + 22240
18 com.cockos.reaper 0x000000010383b311 MediaTrack::RenderSamples(double, long long, int, Track_RS_Output*, int, double, MediaTrack* const*, int, midi_List*, int, int, int, int, int, MediaTrack::Track_SendRec*, bool*, SyncSMP_Context*) + 881
19 com.cockos.reaper 0x0000000103831fea MediaTrack::RenderSamples_nocache(double, long long, double*, int, int, double, MediaTrack* const*, int, int*, bool, int, int, bool*, SyncSMP_Context*) + 9002
20 com.cockos.reaper 0x000000010383b311 MediaTrack::RenderSamples(double, long long, int, Track_RS_Output*, int, double, MediaTrack* const*, int, midi_List*, int, int, int, int, int, MediaTrack::Track_SendRec*, bool*, SyncSMP_Context*) + 881
21 com.cockos.reaper 0x0000000103831fea MediaTrack::RenderSamples_nocache(double, long long, double*, int, int, double, MediaTrack* const*, int, int*, bool, int, int, bool*, SyncSMP_Context*) + 9002
22 com.cockos.reaper 0x000000010383b311 MediaTrack::RenderSamples(double, long long, int, Track_RS_Output*, int, double, MediaTrack* const*, int, midi_List*, int, int, int, int, int, MediaTrack::Track_SendRec*, bool*, SyncSMP_Context*) + 881
23 com.cockos.reaper 0x00000001038420e4 MediaTrack::RunWorkThread(int, double, MediaTrack* const*, int) + 2100
24 com.cockos.reaper 0x00000001038a5912 WorkerThreadInst::threadProc(void*) + 1186
25 com.cockos.reaper 0x0000000103c953b0 __threadproc(void*) + 32
26 libsystem_pthread.dylib 0x00007fff631e32eb _pthread_body + 126
27 libsystem_pthread.dylib 0x00007fff631e6249 _pthread_start + 66
28 libsystem_pthread.dylib 0x00007fff631e240d thread_start + 13