Based on the timeline you provided, the person is still on the 90-day non-B visa entry. That means they basically have no options. The first extension from a visa must be based on the same reason as that visa was issued, which means they can only get a work extension right now. Since they're already on non-immigrant status, they cannot "convert" to a different visa and would need to leave Thailand. They have 2 options, which is to leave and and apply for a new non-O visa while outside of Thailand, or leave and return visa exempt and then apply to convert to a non-O based on retirement from their immigration office. Both options have pros and cons. Obviously the first thing they would need to know is if their immigration office even allows converting from tourist to non-O visa. If not, then the embassy is the only option. As far as embassy vs immigration, just depends on how crazy or far their immigration office is. A conversion from tourist requires at least 2 trips to immigration; First trip to apply for conversion, receive under consideration stamp, then 2nd trip to receive the non-O visa in their passport. Then another extension ~2-3 months later. For the embassy, they can apply online, though the fastest nearby will be in Laos, where they would need to pay in person. But can expect the non-O within 1-3 days after paying. Then they only need to go to immigration one time for the extension after ~2-3 months.