Sounds like you're receptive to working with someone remotely - that's a good attitude.
Hiring an employee involves a lot of HR overhead - taxes, benefits, employee benefits (health care ins), and more - the rules governing this depends upon where the employee lives, and where the business operates. Navigating the red tape is a challenge if it's your first time doing that. But there's always help; it doesn't take a specialized lawyer, often an accountant with prior experience will know what steps to take and how to get it done.
I have experience as employee, not employer, crossing the USA/Canada border. It's slightly more complicated than hiring locally but not insurmountable even for a sole proprietor.
Having a full time employee, despite the administrative challenges, is the best solution. You'll conduct the interviews, and select a person who you'll be working with. They'll be devoted to your project, undistracted. They'll have "office" hours that you define, so there are consistent times when you can communicate.
I'd say an agency should be avoided - acceptable as a last resort. They'll assign your coding work to whoever has time for it in their worker pool. Often the same programmer all the time, but not necessarily. Avoiding the agencies is a control thing.
By interviewing and hand-selecting a person, you'll be one-on-one with the person doing the coding, develop a rapport, you'll possibly pay them better, and you'll probably feel more at ease handing over your 48K lines of lovingly crafted artisan code.