CKKS Bootstrapping gives incorrect results on scale != 60?

Does this imply that if I set firstMod = 60 and dcrtBits = 59, the message space is limited to 1 bit?

No, for the bootstrapping configuration, the message is automatically scaled down by 2^correctionfactor. The correction factor is found automatically by OpenFHE or can be manually set. The correction factor is typically between 7 and 13.

But when i try to multiply c0=10 and c1=20 under this parameter, the decryption is still 200

For leveled CKKS, the extra RNS limbs/towers add support for numbers larger than 2^firstModulus/2^ScalingFactor. For example, if you reserve one extra limb, you will get extra 59 bits (you can support larger numbers in CKKS). But this logic does not apply to CKKS bootstrapping.