The right language and tool is any language/tools/library is any language/tools/library. Any option will have drawbacks, and you can either accept them and move on, or find a way to work around them. No great game was ever successfully completed by endlessly jumping from one technology choice to another; games are made by choosing some particular tech -- flaws and all -- and then working with it until the game is done.
Cross-platform support is great if you're able to do it, and isn't necessarily a huge hurdle if handled correctly, but given your situation I'd recommend forgetting about it for now and concentrating on a single easily targeted platform -- probably either Windows PC, Android, or iOS, with my personal recommendation being Windows PC as the least painless to target. It's relatively easy to develop for Windows, and there's a huge market of potential players. Yes, unfortunately Mac and Linux users might be missing out if your game is Windows only, but you'll still be reaching infinitely more players than the zero who can currently play your unreleased game. If the game is successful and there's a demand for it you can always port to other platforms with a different technology choice (or a more expensive licence for an existing choice) at a later stage. For a successful and experienced developer it might make more sense to go cross-platform from day one, but that just isn't your situation, and you'll be better off focussing on just getting a game released for any platform.
From what you've described, I would second the multiple above recommendations of Game Maker being a great possible option for you. It's quick and productive, but still reasonably flexible with the GML scripting language and the ability to provide extension dlls, and at a very reasonable US$499 for the "master collection" it can export to an impressive array of different platforms and will include any future exporters at no additional cost. It's also been proven with a number of commercially released titles including "Legend of Fae" and "Serious Sam: The Random Encounter".
Those are $20 and $60 third party add-ons that improve the functionality of free Unity. Controller scripting SHOULD just be there, I don't need to pay someone $20 for something I'd probably get for the full version anyway.
Maybe it should be there, but it isn't. For a very small investment of $80 you could accept that buy an add-on and complete your game, or you can abandon Unity as a technology choice and have to start from scratch with an additional option again. Do you want a completed game, or not?
only having it run on Xbox and PC like XNA
MonoGame can potentially help to solve this.
I've never tried Java and wanted to learn it, at least for experience, but I've heard a lot of bad news about it. Like that it has (or at least had) terrible performance issues
Myth: Java not suitable for games. Yes, Java obviously has some performance overhead when compared to native languages like C or C++, but it's often very over-stated (usually based on historical data from much earlier versions, or simple unsubstantiated hearsay) and has not stopped a lot of other developers from creating some very impressive and successful games (Spiral Knights, RuneScape, Minecraft, many others) with the language. You also need to be reasonably good with C or C++ to get that potential better performance -- as a beginner or intermediate programmer it's likely you would make mistakes or miss potential optimisations such that your C or C++ code would actually perform worse than a similar Java implementation anyway.
I just wonder if there are any good engines or whatever that can provide a decent balance of being able to rapidly prototype and design ACTUAL game mechanics instead of graphics/sound/whatever core, and having the ability to change these things if I want.
I really think you're already working with these tools and are just being a bit too picky. No tool is perfect, and you have to accept or work around some limitations. For just $80 you've been shown some add-ons which could potentially fix your complaints about Unity. Worrying that XNA doesn't support additional platforms shouldn't be a major concern if you're thus far unable to release a game for even one platform. Game Maker would probably be a capable choice if you're willing to pay for a licence.
You don't need to find the perfect technology. You need to stick with any acceptable technology and get the job done!
Hope that helps!