Workflows should not ever be tied to specific workers. You can have an activity listening on a worker-specific task queue. Then use that activity to act on other workers in the same process. This still would require some workflow to call such activity on every host. So a host when coming up would require registration through a signal to this notification workflow or getting identities of the workers from DescribeTaskQueue request and constructing queue name from identity for each worker.
I agree that the ability to pause a task queue through a service API would be very useful. Here is a relevant issue.