re: #3 - limiting what processes can utilize parallel worker threads ...
Some background:
1 - there are a few optimizer options (eg, parallel_query, parallel_degree, scan_parallel_degree) that can be set at the session, procedure and/or query level to enable/disable the ability to use parallel worker threads
2 - login triggers can issue session level 'set' commands at login time
Possible solution:
a - configure the dataserver to allow parallel worker threads
b - design/install a login trigger which issues the appropriate 'set' commands to disable parallel worker threads for all login sessions
c - if/when you have a process that needs access to parallel worker threads ... just code said process (at session, procedure and/or query level) to enable the use of parallel worker threads
Sooo, for a process that needs parallel worker thread access the following occurs @ login ... parallel worker thread access is picked up at dataserver level (via sp_configure settings), login trigger disables parallel worker thread access (via 'set' commands), process coding enables parallel worker thread access (via session/proc/query level settings).
And for a process that does not need parallel worker thread access the following occurs @ login ... parallel worker thread access is picked up at dataserver level (via sp_configure settings), login trigger disables parallel worker thread access (via 'set' commands).