Refactors camera and microphone switching logic in the prejoin state. Uses `restartTrack` to preserve track settings and background processor state. Improves background effect handling during camera changes. Creates new tracks only when necessary (camera unavailable). Ensures proper muting behavior based on device settings.