Ah yes - you did mention that. I've just checked the sample js app and the lower bitrate limitations do work there, so I must be doing something wrong in my implementation. Will fix. Sorry for the false report.
Out of interest, I tried the higher presets too, but the 'unable to publish higher than 2,500kbps' behaviour seems to persist. I used a FaceTime camera as well as a virtual camera generated using OBS (at 1080p and 2160p source resolution with high-motion content).. might be that Chrome reckoned it didn't need to encode more than 2,500kbps but I'm not sure. Previously when I've set a bitrate of 8,000kbps in 1080p (again, not with LiveKit), Chrome has maxed out at about 7,000kbps encoding with high-motion content. This is not relevant to our current implementation, but thought I'd mention it in case useful info for anyone else.
Thanks for your pointers, David.