Если все выполняемые в настоящий момент задачи заблокированы, что произойдет? Есть ли способ взять задачу из той очереди и поставить заблокированную задачу в очередь?
Нет, для этого нет возможности. Если задача начинает выполняться и блокируется, то блокирует этот поток до тех пор, пока он не завершится нормально или не прервется из-за отключения пула потоков.
Как мы узнаем, заблокировано или выполняется задание?
Если вам нужно это знать, то вам нужно приложить некоторые знания к самому коду задачи, которые затем могут быть запрошены какой-то другой частью вашего приложения. Очевидно, что что-то еще нужно будет удерживать ссылкой на задачу, чтобы это сработало, прежде чем передавать ее исполнителю.