lib: controller: function end_station_imp *at(size_t i) now uses lock_guard

Previous implementation used a plain mutex, which could be left in a locked state
if the .at(i) operation caused an exception.