us_ticker.cのus_ticker_read()に不具合を見つけました。(1時間11分30秒の件です)
us_ticker.c(80)
    val = (uint32_t)(val64 / count_clock);
とありますが、2^32-1を越える(work_arround>32)と、ずっと4294967295を返します。
擬似コードを作成して実行してみましたが、Cortex-Mでも同じ動作なので、ARMコンパイラの仕様でしょうか。
※x86のgcc(gcc version 4.1.2 20080704 (Red Hat 4.1.2-54))だと、ラップします。
検証用擬似コードはこちら
 
#include "mbed.h"
#define US_TICKER_CLOCK_US_DEV (1000000)
#define CM0_RENESAS_RZ_A1_P0_CLK ( 33333333u)
Serial pc(USBTX, USBRX);
int main()
{
    uint32_t val = 0;
    uint64_t val64;
    double   count_clock = 0;
    uint32_t wrap_arround = 0;
    count_clock = ((double)CM0_RENESAS_RZ_A1_P0_CLK / (double)US_TICKER_CLOCK_US_DEV);
    while(wrap_arround < 40){
        wrap_arround++;
        val64 = ((uint64_t)wrap_arround << 32) + val;
        /* clock to us */
        val = (uint32_t)(val64 / count_clock);
        pc.printf("%u %u\n\r", wrap_arround, val);
    }
}
work_arroundがオーバーフローしたときの動作までは検証していないので、そちらの動作は不明です。
※2015.1.12 21:39追記
以下だと期待通りの動作をするようです。
us_ticker.c(77)
    val64 = (((uint64_t)wrap_arround << 32) + val) / count_clock;
    /* clock to us */
    val = (uint32_t)val64;
 
                    
                 
                
             
        
(タイトル間違い。delay_ms()ではなく、wait_ms()でした。m()m)
wait_ms(1)を繰り返し実行した結果をロジアナで測定したところ、一定のパターンで0.5msec.と1msec.よりも大幅に短い動作が見受けられました。
#include "mbed.h" DigitalOut myled(P1_2); int main() { while(1) { myled = 1; wait_ms(1); myled = 0; wait_ms(1); } }Lチカのバラツキと関係あるかも? ご確認願います。