If so that’s why you’re seeing unexpected results. Enforced Timeout plugin only works with real http requests. Essentially it’s a HTTP protocol level timeout which means it won’t be applied to the virtual endpoint.
JSVM/VP timeouts should be controlled via the jsvm_timeout option in the tyk.conf file.
Is it "jsvm_timeout": 30 that goes into the root level of tyk.conf? There also seems to be another jsvm_http_request_timeout: 120 and I can at least tell that does not work at the root level.
Tyk CE 3.2.4
UPDATE: Turns or jsvm_timeout in the root of tyk.conf works.