Also if a witness does purposely generate a certain block id, they would have to add some "random" data to the block that might be noticeable if scrutinized
This can be largely if not entirely avoided. For example, the block producer can make changes to the block that are plausible to happen by accident, for example, simply omitting one or two transactions, changing the order, etc.
Also if you have some time I would be interested to discuss some of the "decent methods" you mentioned
I may make a survey post about it when I have time.