In the end I coded around the problem (didn't use CommandParameters) but I did try to make a small sample app to reproduce the problem, but as often is the case, it worked!
So short of rolling my code back I don't have any way of reproducing the problem.
The ButtonTool derives from ButtonBase which provides the ICommandSource properties such as CommandParameter so that should work just fine. Perhaps the issue is related to being in a different focusscope, does the same code work if you use the Button class in a toolbar? I would probably recommand submitting a sample that shows the problem to the support group so we can look into the issue.