I think that Rogue One worked better than Solo in the following ways (among others): 1) All of the characters were new. Because of that, it wasn't bogged down nearly as much by fan service as Solo. It could just tell a good story, rather than try to explain how characters that we already knew got to be as they are. Also, because of that and because it was a one-off film, it could kill any characters off, whereas there was never any uncertainty about the fates of Han, Chewie and Lando. 2) The story fit snugly into movie canon, telling the story of the acquisition of the Death Star plans and ending immediately where Episode IV starts. Solo's story, about criminals working for and against one another out of nothing but greed, wasn't very familiar as "Star Wars" or connected to canon except by a few fan service threads (like the Kessel run). It didn't have the "big picture" of other Star Wars films, and some people may like that about it, but I think that it's a part of why so many weren't drawn into the film. 3) It had a clear villain: the familiar Empire. Solo didn't. Whether with the train or the mining operation, there wasn't any sense of whom they were stealing from and it didn't even seem to matter. We assumed that Dryden would ultimately be the villain, but, while they were on his good side, he wasn't really one and there wasn't much tension or a sense of stakes throughout the film. RO, on the other hand, had a tremendous sense of the stakes. I believe that it was just a suit of armor, one of the many decorative props in the room. I, too, thought that it was a guard earlier in the scene and wondered why Beckett didn't shoot him, so you weren't the only one.