MentorPageMentorManager::setMentorForUser, the method we use for saving mentorchanges, always uses job queue to do it. That is because mentor assignment can happen on a GET request, and we cannot use the master connection on GET requests.
In many cases, mentor assignment actually happens in a POST request: via Special:ClaimMentee, via the API, on registration, etc. In those contexts, use of job queue is unnecessary and generally a bad idea. Let's use the context (already passed to MentorPageMentorManager, albeit casted as MessageLocalizer) to determine whether we're in a POST request, and save directly if we are, to limit impact of job queue issues.