any cpu: 32 bit machine code runs in 64-bit mode on Win64, in 32-bit mode otherwise (i.e. Windows decides based on Win itself and CPU)
x86: 32bit or 64 bit machine code runs in 32-bit mode (or not at all when future x64 CPUs no longer support x86)
x64: code runs in 64-bit mode on x64 CPUs and Win64, or not at all.
For all of them, the process needs to be homogeneous; if parts (referenced DLLs) contain native code of the other persuasion, the app won't load.
Apart from the application, you should also test your development environment: developing 32bit applications with VisualStudio 2010 on a Windows 7 (64bit) computer may require some strange settings - it was hard to get it working correctly in our case. Therefore, test also that point.
Yes, if it's merely filling an ActiveRecord-object, then I'd expect initialization using a constructor. No, if it's merely a query that returns a value or a reader, then I'd expect a static method that returns that.
The problem with best practices is they are different for different projects and usages. It's your job to understand what the practice is, how it should be used and whether it fits for the goals in your particular usage.
Failure is not an option; it's the default selection.