I understand the problem. TwiMaster uses a semaphore when linked with Nil RTOS so Nil RTOS must be started to do I2C I/O.
Move bmp.begin() here:
// Declare thread function for thread 1.
NIL_THREAD(Thread1, arg) {
bmp.begin(BMP085_HIGHRES);
// Start timer 1 with a period of PERIOD_USEC.
nilTimer1Start(PERIOD_USEC);
bmp.begin() does lots of I/O.