init() の非同期タスクを段階的にシミュレーション

旧コードは Promise.all(asyncInitTasks) で 3 つのタスクを並列化しています。 実行順は保証されないものの、ログの順序を調整してエラーを拾っていました。ボタンでステップ毎の完了を疑似的に待ち、 エラー時のメッセージも出力します。

setupScene / setupControls / setupDeviceOptimization
resolve() までは try { ... } catch { reject } を再現。
setupEnvironmentMap('images/black_back2.jpg')
TextureLoader 成功時だけ resolve。
setupInteractiveUI + createInteractionControl + createAnimatedSphere
失敗時は catch → alert() をそのまま再現します。
ログ: Promise.all 待機中…