fsm: fix state_chg(): pass microseconds to osmo_timer_schedule()

As was demonstrated in [1], osmo_fsm_inst_state_chg_ms() is broken.
The problem is in state_chg(): this function is passing *milli*seconds
to osmo_timer_schedule(), while it expects *micro*seconds.

Change-Id: Ib0b6c3bdb56e4279df9e5ba7db16841645c452aa
Related: [1] I5a35730a8448292b075aefafed897353678250f9
Fixes: I35b330e460e80bb67376c77e997e464439ac5397
Fixes: OS#5622
diff --git a/src/fsm.c b/src/fsm.c
index 8b0b27b..b51c5cb 100644
--- a/src/fsm.c
+++ b/src/fsm.c
@@ -685,8 +685,11 @@
 	if (!keep_timer
 	    || (keep_timer && !osmo_timer_pending(&fi->timer))) {
 		fi->T = T;
-		if (timeout_ms)
-			osmo_timer_schedule(&fi->timer, timeout_ms / 1000, timeout_ms % 1000);
+		if (timeout_ms) {
+			osmo_timer_schedule(&fi->timer,
+			      /* seconds */ (timeout_ms / 1000),
+			 /* microseconds */ (timeout_ms % 1000) * 1000);
+		}
 	}
 
 	/* Call 'onenter' last, user might terminate FSM from there */