In order to solve #4 and #3, the only way is to move away from standard firmata since it doesn't support buzzer with bluetooth and the IR receiver. The mBot original firmware supports everything.
References:
mbot_firmware.ino
mBlock mBot blocks definition
mBot.s2e
mBot source @mBlock
MeUltrasonic.cpp
mbot.js
How to add and extention for mBlock