If the node which may sign the next block is determined by the network before it's signed, how to handle the cases where
* node with signing privilege refuses to sign, or
* signing node is attacked in order to prevent signing?
It's possible more than 1 miner would solve the block at 1 time. So if the block is prevented from being signed as you mentioned above, another miner might get lucky.
The block that gets signed is the one that enters the blockchain.