Hey, welcome to the forums!
2. Remove gravity all together and implement my own.
This is the best way to go. As you note it's a pain to set gravity for each and every object you want to affect, but we're hoping to introduce the Families (object grouping) system soon which will make this much easier - you'll be able to apply the gravity to a group of objects at once rather than having to re-do it for each object.
hat I'm getting to is that in the "other" system I could access other scripts through one script. So if I wanted to modify a global variable, I could. Or if I wanted to apply a force to another object I could. And on and on.
You can do this in the plugin/behavior SDK. Javascript doesn't employ any encapsulation (e.g. private variables or functions) so by its very nature you can edit anything in the runtime at any time from a plugin. Of course, you have to make sure you do it in such a way that it doesn't break the runtime - if you have any specific questions about this I'd be happy to help.
p.s. what was the "other" system? We don't censor mention of competitors here, because we're confident Construct 2 is the best.
hat I've been looking for with C2 is a way to do something similar. What I've found so far, if I understand correctly, is that implementing a "scripting" option for the Event system is not possible because of the need to be cross compatible with any exporter that may be developed.
Implementing scripts in Construct has been something that's been regularly discussed since Construct Classic (released 2007). We've never been keen on the idea: we want Construct 2 to be an event-based tool only, so we can focus all our energies on to making a great event system, rather than a half-baked event system which you're supposed to ignore in favour of script to do anything serious.
Adding script via a third party plugin currently isn't actually really possible - plugins can't extend the editor at the moment, so the only way to input scripts is via text objects or loading external files, which is probably more hassle than it's worth. And as I said we're not keen on the idea anyway. And as you note, it creates really difficult porting problems if we come to support other platforms further down the line - anyone using a script which is not ported to another exporter will not be able to port their game. I'd also advise against inventing your own scripting language. It's really complicated and hard, and I think inline snippets of javascript would be more useful than some unknown brand new language. And inline snippets of javascript are not far off the SDK, and the SDK makes plugins and behaviors which work really nicely with the editor, rather than random bits of script across your game.
If you want to design your own language as a hobby project that's cool, but I'm speaking more from a practical point of view (what we really want to be in the editor).
. A particle system.
We have an official particle plugin planned (it's the kind of thing very well suited to the plugin system). However if you want to try making your own, well, we can't complain if people are doing our work for us :)
Hope that covers everything, I would encourage you to have a play with the SDK, it's got documentation which should help you get going too! All the official plugins and behaviors are written in javascript in the SDK too, and you can find them in the install directory (exporters\html5\plugins and exporters\html5\behaviors) - you might find it interesting to see how all the official plugins and behaviors implement their features in javascript.