Коротко: защита от враждебного кода трудна.
1. Когда происходит сбой сценария, другие сценарии не должны быть затронуты : для достижения этого единственный надежный способ в Windows - запускать каждый сценарий в отдельном процессе. То есть Исключение StackOverflow, вызванное «скриптом», приведет к остановке вашего процесса. Межпроцессное взаимодействие вряд ли будет соответствовать вашим требованиям к производительности.
2. 1 мс каждый сценарий : прерывание потока является решением. Избегайте огромного количества потоков (превышение десятков потоков сомнительно: переключение между потоками может снизить вашу производительность, место в стеке съедает всю память, и в общем случае синхронизация состояния перекрестного потока - это весело). Не перезапускайте «скрипты», которые ведут себя плохо - таким образом, вам не нужно беспокоиться о слишком большом количестве вызовов Thread.Abort. Обратите внимание, что удаление потока, в котором нет необходимости, приведет к уничтожению всего, что связано со «сценарием», так как он мог порождать собственные потоки / асинхронные операции / задачи пула потоков ...