How is determined how many transactions will be included in a block? Do nodes use all transactions that were broadcast to them, or do they choose a selection from amongst them? If so, why don't they just use all transactions that were known by them at the moment they started working on a new block?
There's a protocol hard-coded limit of 1MB per block which no miner can violate (the block would be rejected by the network). There are also softer limits most miners implement, I think. But roughly, despite this 1MB limit, it's the miner's choice how to fill his block. (obviously, the block must be valid, i.e., respect fundamental protocol rules like not to include a double-spend, not to spend somebody's money without authorization etc)