tryStart method
Start a tour unless one is already running: false when busy (no assert, no state change), otherwise starts and returns true.
Implementation
Future<bool> tryStart(HintTour tour) async {
if (!isIdle) return false;
await start(tour);
return true;
}