The following line in the uwsgi rc.d script is preventing proper rc.d functionalify when specifying a different uwsgi_program in /etc/rc.conf:
With this line in place the rc script can start uwsgi (and uses the non-default uwsgi program as it should) but it can't find the running instance, so "status" "restart" and "stop" do not work.
This is because rc.subr uses $procname in check_pidfile() and the line above defaults $procname to $command which is hardcoded to /usr/local/bin/uwsgi further down in the rc.d script. So even if uwsgi_program is set to something else, $procname is still set to /usr/local/bin/uwsgi which means rc.subr cant find it.
Removing the line above appears to make everything work nicely when using a non-default uwsgi_program. Works for me at least :)