no one is in perfect shape in this fight,
Sanji did get beaten bad by Black maria but at the same time Queen was getting hits from Marco, Marco wont just lose his stamina only by hitting Queen and King twice when People fight for 5-10 days in one piece, its obvious they were getting beaten by each other for some time and then he got some good hits from Chopper as well,
Sanji might be 50% body + 100% Haki since he wasnt using Haki to block Bm
Queen might be 70% Body + 70% Haki since he was fighting Marco
at the same time Sanji's RaidSuite most likely has Healing abilities and Queen has Zoan healing
....
still to think Sanji should be beating Queen (which is happening), is a shame after how he has been getting beaten constantly by opponents 10% of Queen's strength since TS